私はiOSを学び、例を取り上げています - 私はほとんどそれを理解しています。ここでは、私は質問をフォローアップするいくつかのコードです:なぜあなたはそれを表示している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が表示されているかどうかを確認しています。そうでない場合は、インスタンス化されているかどうかを確認します。そうでない場合は、スーパービューからblueViewControllerを最初に削除してインスタンス化して表示します。
これまでのところすべて良いです。
は、ここで私は理解していないものだ - なぜ、次のやっている:
[blueViewController viewWillAppear:YES];
[yellowViewController viewWillDisappear:YES];
我々がblueViewControllerではなく黄色に消えるはず私には思えます。
私は本当に説明を感謝します。ありがとう。