UITabBarController внутри UIViewController = viewDidAppear: не вызывается - PullRequest
3 голосов
/ 28 июня 2011

Я начинаю с экрана входа в систему. Затем, когда пользователь входит в систему, я загружаю Viewcontroller с UITabBArController в нем. Проблема заключается в viewdidAppear: не вызывается ни для одного из отдельных viewControllers в tabBarController.

У меня такое ощущение, что это не лучшая практика программирования, и у кого-нибудь есть идеи, как улучшить структуру моего кода или как решить мою проблему?

Ответы [ 4 ]

3 голосов
/ 09 декабря 2013

У меня была проблема, потому что я также занимал подклассы UITabBarControler, где переопределил viewDidAppear без вызова [super viewDidAppear: ...]

После вызова этого метода viewDidAppear также вызывался внутри sub-view-controller.

3 голосов
/ 29 июня 2011

Полагаю, что ваша проблема здесь связана с неправильным использованием UIViewController и UITabBarController.

UITabBarController существует как контейнер для нескольких контроллеров представления. Скорее всего, оно не должно сдерживаться. Он предназначен для того, чтобы находиться на вершине иерархии контроллера представления. Итак, первый шаг, вероятно, состоит в том, чтобы перестроить ваше приложение так, чтобы UITabBarController больше не находился под чем-либо еще, и посмотреть, исправит ли это вас.

После этого подход slev для представления вида входа в систему звучит как правильный.

2 голосов
/ 28 июня 2011

Почему бы не создать приложение на основе TabBarController, а затем сразу же вызвать модальный экран при запуске приложения (для входа в систему)?После того, как вы закончили вход в систему, просто отклоните его, чтобы TabBarController стал ключевым окном.

0 голосов
/ 28 июня 2011

Вы можете попытаться вручную вызвать viewdidAppear для контроллеров subview: когда он вызывается на rootviewcontroller, также вызвать вручную вызовы subviewcontroller.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...