viewWillAppear: метод не реагирует на одновременное использование панели вкладок и контроллеров навигации - PullRequest
6 голосов
/ 27 июля 2010

Я использую панель вкладок + приложение на основе навигации, и у меня есть 4 панели вкладок. Когда я перемещаюсь от одного контроллера представления к другому контроллеру представления, метод viewWillAppear:, кажется, не отвечает, и я вынужден вызвать его вручную, создав объект следующего контроллера представления. Итак, мой вопрос: как мне избежать вызова метода viewWillAppear: вручную при переходе от одного контроллера представления к другому? Вместо этого он должен запускаться автоматически, точно так же, как метод viewdidLoad: запускается при переходе от одного контроллера представления к другому. Пожалуйста, объясните мне, как я могу это сделать.

Надеясь на лучший ответ Заранее спасибо

Ответы [ 6 ]

2 голосов
/ 13 июля 2012

Вы правы, viewWillAppear немного особенный, обычно он вызывается автоматически, но в некоторых случаях, в том числе, когда вы добавляете представление контроллеров представления вручную (view addSubview :), а также при добавлении этого в качестве контроллера представления в UITabBarController или UINavigationCnotroller (из которых у вас есть оба!) Это не передается.

Это, однако, только для корневого представления, когда вы перемещаетесь (возможно, с помощью контроллера навигации) назад и вперед, это корневое представление viewWillAppear будет запускаться как некоторая точка.

Короче говоря, если вам нужно реализовать что-то в viewWillAppear в этих случаях, вы должны сообщить об этом сами, когда будете знать, что это будет представлено. Вы можете справиться с этим делом в вашем контроллере представления, прочитайте следующую статью по этому вопросу:

http://www.touchthatfruit.com/viewwillappear-and-viewdidappear-not-being-ca

Удачи.

0 голосов
/ 13 июля 2012

Попробуйте вместо этого использовать метод viewDidAppear.

0 голосов
/ 28 мая 2012

Вы не забыли позвонить [super viewWillAppear] куда-нибудь?

0 голосов
/ 11 ноября 2011

Вы имеете в виду 4 элемента с вкладками на панели вкладок, а не «4 панели вкладок»?Если у вас есть панель вкладок с элементами вкладок, система должна вызывать методы viewWillAppear:, так как вкладки выбираются пользователем.У вас могут быть другие проблемы, которые вызывают проблему.

0 голосов
/ 06 ноября 2011

Вы должны проверить UITabBarDelegate , а затем искать метод:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item.

Описание: Отправляется делегату, когда пользователь выбирает панель вкладок пункт.

0 голосов
/ 05 ноября 2011

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

[[[_mainTabController topViewController] navigationController] pushViewController:renewalScreen animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...