0
我正在学习iOS并通过一个例子工作 - 我主要理解这个例子。这里有一些代码,我会跟进一个问题:当您显示ViewController时,为什么不显示ViewController的视图?向后看。
- (IBAction) switchViews:(id)sender{
[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。如果不是的话,我们检查一下它是否被实例化。如果没有,我们实例化它,然后显示它,首先从SuperView中删除blueViewController。
目前为止都不错。
这就是我不明白 - 为什么在执行以下操作:
[blueViewController viewWillAppear:YES];
[yellowViewController viewWillDisappear:YES];
在我看来,我们应该消失blueViewController,而不是黄色。
我真的很感激解释。谢谢。