navigationController popToRootViewControllerAnimated: YES не вызывает viewWillAppear - PullRequest
0 голосов
/ 19 марта 2020

Если я бегу, в течение IOS не быстро,

[[navigationController popViewControllerAnimated:YES] viewWillAppear:YES] 

он вызывает viewWillAppear на предыдущем V C.

Мне нужно вернуться к root V C и вызвать этот ViewWillAppear; однако

[[navigationController popToRootViewControllerAnimated:YES] viewWillAppear:YES] дает мне ошибку кодирования.

Есть ли способ сделать это без applicationWillEnterForeground: и applicationDidBecomeActive: методы в моем appDelegate

Я пытался в течение init

 [[NSNotificationCenter defaultCenter] addObserver:self 
                                   selector:@selector(willEnterForeground:)
                                       name: UIApplicationWillEnterForegroundNotification
                                     object:nil];

И в теле

-(void) willEnterForeground:(Notification*)NotificationCenter
{
(self viewWillAppear:YES);
}

Кажется, это тоже не вызывает viewWillAppear.

1 Ответ

0 голосов
/ 20 марта 2020

Ваш код кажется совершенно неправильным ...

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

Во-вторых, просто вызов :

[self.navigationController popViewControllerAnimated:YES];

перейдет к предыдущему контроллеру представления в стеке, или:

[self.navigationController popToRootViewControllerAnimated:YES];

перейдет к контроллеру Root.

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

...