viewWillAppear в viewcontrollers панели вкладок - PullRequest
8 голосов
/ 17 июля 2010

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

Обновление: в качестве PS я должен добавить, что это tabbarcontroller в иерархии навигационного контроллера

Приветствия

Nik

Ответы [ 4 ]

8 голосов
/ 13 июня 2012

Вы можете использовать делегат контроллера панели вкладок, который работает как шарм

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    [viewController viewWillAppear:YES];

}
1 голос
/ 28 мая 2017

И в случае, если вы найдете этот вопрос, потому что вы хотите обновить что-то в самом UITabBarController, а не UIViewControllers в UITabBarController, как вопрос ОП.Например, скрытие или отображение пользовательского UITabBarButton.В Swift 3.0 у меня работало переопределение setNeedsStatusBarAppearanceUpdate моего UITabBarController класса.

override func setNeedsStatusBarAppearanceUpdate() {

}
1 голос
/ 26 июля 2011

Пожалуйста, смотрите мой ответ здесь

Просмотр iPhoneWillAppear не срабатывает

0 голосов
/ 17 июля 2010

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

Вместо этого используйте setNeedsDisplay в представлении viewController.

...