我根据视图控制器上的 iOS 文档编写了一个自定义视图控制器容器,我正在努力寻找一种优雅的方式来呈现第一个视图控制器,该控制器还可以viewWillAppear:
自动转发相关的显示消息。
当我尝试transitionFromViewController:toViewController:duration:options:animations:completion:
使用时fromViewController:
,nil
我得到一个错误。我已经使用动画块将视图动画化到视图层次结构中UIView
。这似乎打破了外观方法的自动转发,意味着我有责任在适当viewWillAppear:
的ViewDidAppear:
时候调用。有没有更有效的方法将第一个视图转换到处理外观和旋转方法的屏幕上?
我的代码在第一个视图控制器中看起来有点像这样。
self.visibleViewController = [[UIViewController alloc] init];
[self addChildViewController:self.visibleViewController];
[self.visibleViewController viewWillAppear:YES];
[self.visibleViewController.view setAlpha:0];
[self.view addSubview:self.visibleViewController.view];
[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.visibleViewController.view.alpha = 1;
}
completion:^(BOOL finished){
[self.visibleViewController viewDidAppear];
[self.visibleViewController didMoveToParentViewController:self];
}];