需要关于transitionFromView的帮助:toView:duration:options:completion:

关于transitionFromView:toView:duration:options:completion: Apple doc在最后几行中说:

此方法仅修改其视图层次结构中的视图。 它不会以任何方式修改您的应用程序的视图控制器。 例如,如果使用此方法更改由视图控制器显示的根视图,则有责任适当地更新视图控制器以处理更改。

如果一个ViewController有2个全屏大小的视图一次显示一个,那么没有问题:

[transitionFromView:self.view toView:self.view2 …

但是这意味着你有责任适当地更新视图控制器来处理更改

如果我这样做:

secondViewController *sVc = [[secondViewController alloc]init]; [transitionFromView:self.view toView:sVc.view... 

我的责任是如何更新视图控制器来适当地处理更改 ? 或者如何更新ViewController?

UPDATE

我创build了一个单一的视图项目,添加第二个VC然后在第一个VCbutton点击我做到了这一点:

 self.svc = [[secondVC alloc]init]; [UIView transitionFromView:self.view toView:self.svc.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {}]; 

… secondVC viewDidLoad正在其nslog正在工作。

那么如何处理viewcontroller的更新呢?

声明“您有责任适当地更新视图控制器来处理更改”。 这意味着您必须适当地调用视图层次结构委托方法,例如:

 - (void)viewDidLoad; - (void)viewDidUnload; - (void)viewWillAppear; - (void)viewDidDisappear; 

和其他方法负责正确的视图pipe理。

这里有一些 例子 。

当我们使用transitionFromView:toView:duration:options:completion:我们只能在视图层次结构中查看。 但苹果说,我们应该处理这些视图的父视图的ViewControllers的更新。

在导航控制器堆栈中维护视图控制器…

对于.ex:如果您的应用程序中有TabController,

在tabIndex两处的某处,你需要在tabindex 1处显示viewcontroller的视图,那么当你使用transitionfromview方法时,你应该更新你的tabIndex

 [UIView transitionFromView:fromView toView:toView duration:0.5 options:(controllerIndex > tabBarController.selectedIndex ? UIViewAnimationOptionTransitionCurlUp : UIViewAnimationOptionTransitionCurlDown) completion:^(BOOL finished) { if (finished) { tabBarController.selectedIndex = controllerIndex; } }];