почему я иногда теряю элементы навигации при нажатии, чтобы вернуться к предыдущему экрану в приложении UINavigationController?

Кто-нибудь знает, почему я иногда теряю элементы навигации при нажатии, чтобы вернуться к предыдущему экрану в приложении UINavigationController?

Задний план:

  • иметь приложение для iPhone с использованием UINavigationController и UITableViews
  • В 98% случаев все в порядке, и если я нахожусь на подробном экране и нажимаю кнопку «Назад», все находит. Приложение возвращает вас к главному экрану (отображает вид из стека)
  • небольшой процент времени, и на самом устройстве iPhone я нажимаю, чтобы вернуться, вижу начало анимации, но в итоге я оказываюсь (а) на той же странице и (б) не появляются кнопки навигации или кнопки панели инструментов
  • из этого состояния вы ничего не можете сделать, очевидно, и должны убить приложение и перезапустить

Есть идеи? Как найти неисправность? (отмечая, что это только изредка при тестировании на реальном устройстве, которое я замечаю, и это может занять несколько часов/дней, прежде чем это произойдет)

Спасибо


person Greg    schedule 09.05.2011    source источник


Ответы (1)


Добавьте предупреждение в функцию didReceiveMemoryWarning в viewController. ОС вызывает viewDidUnload при некотором предупреждении о памяти (что обычно не происходит в симуляторе).

person Gary    schedule 09.05.2011
comment
привет, Гэри. Как ты думаешь, такое предупреждение о памяти может вызвать забавное поведение в приложении? т. е. не позволит ли IOS нормально работать приложению или убьет его, если это будет необходимо? (Я предполагаю, что я имею в виду, я не уверен) - person Greg; 09.05.2011
comment
Я видел нечто подобное, когда использовал MKMapView, где моя кнопка панели для IntelligentSplitViewController исчезала, когда возникало предупреждение о памяти, и снова появлялась при переключении ориентации. В любом случае, это просто идея для вас, чтобы попробовать. Не могу однозначно сказать, что у вас такая же проблема. - person Gary; 09.05.2011
comment
Так действительно ли добавление оповещения помогло решить проблему, Гэри, или, по крайней мере, информировало пользователя о том, что происходит, и ему следует изменить ориентацию? Вы когда-нибудь устраняли первопричину? - person Greg; 09.05.2011
comment
Я фактически перестал использовать IntelligentSplitViewController, поскольку Apple в любом случае не рекомендует использовать SplitViewController на панели вкладок. Какая-то другая история. :) - person Gary; 09.05.2011
comment
Вы можете попробовать следующий код для имитации предупреждения памяти в симуляторе. gist.github.com/956403 - person Gary; 09.05.2011