【发布时间】:2012-11-05 17:44:47
【问题描述】:
我不确定我是否完全理解 transitionFromViewController:toViewController:duration:options:animation:completion: 的作用。它只是一种方便的方法吗?
例如,这样做有什么区别......
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:0.25
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fromViewController.view.alpha = 0;
toViewController.view.alpha = 1;
} completion:^(BOOL finished) {
[fromViewController removeFromParentViewController];
[toViewController didMoveToParentViewController:self];
}];
...还有这个?
[self.view addSubview:toViewController.view];
[UIView animateWithDuration:0.25
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
fromViewController.view.alpha = 0;
toViewController.view.alpha = 1;
} completion:^(BOOL finished){
[fromViewController.view removeFromSuperview];
[fromViewController removeFromParentViewController];
[toViewController didMoveToParentViewController:self];
}];
我问的原因是在某些情况下我需要将子控制器视图添加到容器控制器视图的特定子视图中。使用 transitionFromViewController:toViewController:duration:options:animation:completion: 没有给我这个选项。
【问题讨论】:
-
当我执行
transitionFromViewController时,我经常在子视图中使用fromViewController.view,它会将toViewController.view添加到同一个子视图中(这非常重要)。或者你是说你想让toViewController.view进入一个不同的子视图? -
不,我想要的和你一样。我试过了,它有效!谢谢!在文档中包含这种漂亮的行为不会有什么坏处。
-
@Rob 感谢您分享这条信息。您应该将其包含在您的答案中。我有完全相同的用例,但不知道该方法会自动将子视图置于正确的位置。节省时间,谢谢!
标签: iphone ios ios5 uiviewcontroller