关于transitionFromView:toView:duration:options:completion:苹果文档在最后几行中说了这一点:


  此方法仅修改其视图层次结构中的视图。确实
  请勿以任何方式修改应用程序的视图控制器。对于
  例如,如果您使用此方法来更改由
  视图控制器,您有责任更新视图
  控制器适当地处理更改。


如果ViewController具有2个全屏尺寸的视图,一次只能显示一个,则没有问题:

[transitionFromView:self.view到View:self.view2 ...

但是这意味着您有责任适当地更新视图控制器以处理更改吗?

如果我这样做:

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


我负责更新视图控制器以处理更改的职责是什么?或如何更新ViewController?

更新

我创建了一个单视图项目,添加了secondVC,然后在按钮点击的firstVC中,我这样做了:

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;


以及负责适当视图管理的其他方法。

这是some examples

关于ios - 需要有关transitionFromView:toView:duration:options:completion的帮助:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16337706/

10-12 14:42