Я нахожусь в процессе изучения 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, а не желтый.
Я бы очень признателен за объяснение. Благодаря.