viewDidAppear вызывается дважды, но viewWillAppear вызывается один раз - PullRequest
1 голос
/ 30 октября 2010

Я обнаружил, что, когда моя программа запускается, в одном из моих контроллеров просмотра порядок вызовов будет viewDidAppear, viewWillAppear, viewDidAppear.

Я не ожидал, что первый viewDidAppearназываться.Что может быть причиной этого и как я могу это исправить?Банкомат У меня есть флаг в viewDiDAppear, чтобы проверить, был ли вызван viewWillAppear, но это хак.

Ответы [ 4 ]

1 голос
/ 31 июля 2013

Я только что столкнулся с очень похожей проблемой. В моем случае это было из-за ошибки в ECSlidingViewController (https://github.com/edgecase/ECSlidingViewController). Я только что обновил код с github, решил проблему.

При использовании ECSlidingViewController поверх uikit navigationController дочерний viewDidAppear вызывался дважды.

0 голосов
/ 30 октября 2010

Вполне вероятно, что вам нужно поведение viewDidLoad, а не viewDidAppear - viewDidAppear может несколько раз вызываться вашим ViewController, когда вы этого не ожидаете.

0 голосов
/ 30 октября 2010

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

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(viewDidAppear) object:nil];
0 голосов
/ 30 октября 2010

Установите точку останова в viewDidAppear, затем проверьте стек вызовов в отладчике. Он скажет вам, что вызывает метод.

...