Kru*_*lur 10 cocoa-touch uiviewcontroller xamarin.ios ios5
在实现UIViewController包含时,在将一个子控制器与另一个子控制器交换时,我必须发送以下消息的正确顺序是什么?
它是如下,还是我的订单不正确?我错过了消息吗?
addChildViewController:addSubview:didMoveToParentViewController:removeFromSuperview::removeFromParentViewController::编辑: 我必须注意,上面只是你不使用UIViewController的转换方法而是想手动添加新视图的问题.
Kru*_*lur 15
好吧,想通了.这完全在文档中,但我发现它很好隐藏.我会把它分成三个案例,因为我认为它可能对其他人有所帮助.为什么我这么难做而不是使用[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion]?答案是,如果已有视图控制器,则只能使用转换方法.如果要从"无控制器"转换到某个控制器,反之亦然,则上述方法将引发异常.
情况1:两个控制器都是相同的 - 包括两个都是空的
情况2:旧控制器为NULL,新控制器不为NULL.只需添加新控制器即可.
addChildViewController到新控制器 - 这将触发隐式willMoveToParentViewControlleraddSubviewdidMoveToParentViewController情况3:旧控制器不为NULL且新控制器不为NULL.在控制器之间运行转换.
addChildViewController到新控制器 - 这将触发隐式willMoveToParentViewControllerwillMoveToParentViewController并将其作为新父控制器传递给nilUIView's动画在旧视图和新视图之间运行自定义过渡.didMoveToParentViewController到新控制器.removeFromParentViewController到旧控制器 - 这将触发隐式didMoveToParentViewController| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |