0

В моем приложении я использую табуляцию. В первый раз, когда приложение загружается, он вызывает функции в viewDidload. Но когда я нажимаю на другие вкладки и снова нажимаю на первую вкладку, мне нужно вызвать функции в viewWillAppear. Он не звонил, когда я снова нажимаю на 1-ю вкладку. Есть идеи?Вид появится, не получив вызов

ответ

1

В вашем делететеле делегата UITabBarController (didSelectViewController) вызывается [viewController viewWillAppear:YES];, и тогда все должно быть в порядке.

+3

Вы никогда не должны вручную ссылаться на методы, которые запускают события, такие как 'viewDidLoad' или' viewWillAppear'. Если они не стреляют, это происходит потому, что происходит что-то еще. Попытка называть их вручную вызовет бесконечные проблемы. – memmons

+0

Человек, который вы потрясающий ... это точный ответ для этого ... Я сделал это и отлично работал для меня. Великий ответ :) –

+1

У базового класса UIViewController есть код, который запускается в viewWillAppear. Вы будете сталкиваться с неожиданными проблемами, если вы вызовете это вручную. – memmons

-1

viewDidLoad вызывается, когда контроллер завершил настройку его вида, это происходит, когда контроллер вида выделен, и когда контроллер вида отображается после предупреждения о памяти, которое заставляет его скрывать представление.

Если вам нужно сделать что-то каждый раз, когда показывается Ваше мнение, используйте viewDidAppear или viewWillAppear

+0

Не отвечает на вопрос. – memmons

-1

вызов [супер viewDidLoad] или [супер viewWillAppear], где вы хотите. Но я бы предложил вам создать общий метод (который вы пытаетесь реализовать в viewDiDLoad или viewWillAppear) и вызвать первый раз этот метод в viewDidLoad/viewWillAppear и после этого, когда нажата кнопка панели вкладок, вызовите ваш метод.

+1

Никогда не делайте этого. См. Мой комментарий выше. – memmons

+0

@ Харконян, что не так, как вы нашли в моем ответе, вы полностью не читали мой ответ, и я предложил ему сделать это по-другому. –

+1

Вы никогда не должны вызывать [super viewDidLoad] или [super ViewWillAppear] - когда-либо - вне методов просмотра viewDidLoad или viewWillAppear. – memmons

Смежные вопросы