关于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/