2

在 iOS 5 上,如果我添加一个子视图控制器addChildViewController并添加它的视图,比如说,在 (0, 100) 并覆盖整个底部屏幕,然后在这个新的子视图控制器中,呈现另一个使用presentViewController翻转动画的视图控制器,我以为只有子视图会翻转并呈现一个新视图,但结果是整个视图(除了状态栏之外的整个屏幕)都被翻转了?

我认为他们以“独立的方式”工作?也就是如果一个子视图控制器呈现另一个视图控制器,替换的是子视图控制器的视图,而不是根视图?

(因此,如果呈现的视图控制器的视图具有黄色背景,现在除了状态栏之外的整个屏幕都具有黄色,而不仅仅是从 (0,100) 开始并覆盖底部屏幕的子视图控制器的视图)

4

2 回答 2

6

设置childViewController.definesPresentationContext = YES

于 2012-09-22T22:24:02.500 回答
1

如果您只想翻转子视图控制器,则需要将控制器的视图添加到根视图控制器的视图层次结构中(呸!说快 2 倍!),然后使用UIView动画为它们设置动画。

[UIView transitionFromView:controllerB.view
                    toView:controllerC.view
                  duration:0.33
                   options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionFlipFromLeft
                completion:^(BOOL finished) {
                    // whatever completion code you need
                }];
于 2012-09-22T21:20:52.760 回答