Почему исчезает представление ViewController при его отображении?Оглядывается назад. - PullRequest
0 голосов
/ 29 июля 2011

Я нахожусь в процессе изучения iOS и работаю над примером - который я в основном понимаю. Вот код, который я задам вопросом:

- (IBAction) switchViews:(id)sender{</p> <pre><code>[UIView beginAnimations:@"View Flip" context:nil]; [UIView setAnimationDuration:.5]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; if (self.yellowViewController.view.superview == nil) { if (self.yellowViewController == nil) { YellowViewController *yellowController = [[YellowViewController alloc] initWithNibName:@"YellowView" bundle:nil]; self.yellowViewController = yellowController; [yellowController release]; } [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; [blueViewController viewWillAppear:YES]; [yellowViewController viewWillDisappear:YES]; [blueViewController.view removeFromSuperview]; [self.view insertSubview:yellowViewController.view atIndex:0]; [yellowViewController viewDidDisappear:YES]; [blueViewController viewDidAppear:YES];

Вот что я понимаю. Анимация понятна.

Мы проверяем, отображается ли yellowViewController. Если нет, то мы проверяем и проверяем, создан ли он Если нет, мы создаем его экземпляр, а затем отображаем его, сначала удаляя blueViewController из SuperView.

Пока все хорошо.

Вот что я не понимаю - почему делают следующее:

[blueViewController viewWillAppear:YES];</p> <p>[yellowViewController viewWillDisappear:YES];

Мне кажется, мы должны исчезнуть blueViewController, а не желтый.

Я бы очень признателен за объяснение. Благодаря.

1 Ответ

0 голосов
/ 29 июля 2011

Вы не должны делать эти звонки самостоятельно, они выполняются автоматически в рамках iOS. Таким образом, все ваши звонки viewWill… и viewDid… не нужны и могут быть удалены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...