У меня есть UINavigationController
на одной из вкладок UITabBarController
.
Теперь я представляю новый контроллер представления (назовем его Стив) для всего приложения (используя presentViewController:animated:completion:
).
Затем я имитирую нехватку памяти.
После увольнения Стива (используя dismissViewControllerAnimated:completion:
), я теперь вижу, что представление UINavigationController
исчезло;на вкладке;видна только пустая белая область!
Почему это?Я пытался вызвать методы view
на всех мыслимых контроллерах после увольнения Стива, но содержимое вкладки все еще остается пустым (белым).
Странная вещь заключается в следующем: Если ящелкните на другой вкладке и вернитесь на исходную вкладку, содержимое (контроллер навигации) снова будет отображаться нормально.Контроллер панели вкладок делает что-то особенное, чтобы заставить представление отображаться?
ОБНОВЛЕНИЕ: Мне удалось «исправить» мою проблему с этим ужасным кодом, незадолго до того, как Стив уволил:
[[[[[self tabBarController] view] subviews] objectAtIndex:0]
addSubview:[[self navigationController] view]];
Что он делает, так это то, что он находит подпредставление контроллера панели вкладок, который является не панелью вкладок (то есть видом сверху), а затем добавляет представление контроллера навигациибыть его подпредставлением.
Это, конечно, ужасно, потому что оно делает внутренние предположения о структуре подпредставления представления контроллера панели вкладок.
Если у кого-то есть какие-либо более лучшие решения, пожалуйста, дайте мне знатьо них.