我有一个应用程序,我试图在导航过渡期间将UIScrollView
从UIViewController
传递到下一个UIScrollView
。我想弄清楚我应该从哪个方法中删除superview
中的UIViewController
,然后将其附加到新的NSLog
。
我在第一个viewDiDisappear
的{{1}} / viewWillDisappear
方法和第二个UIViewController
/ viewDidAppear
方法中执行了viewWillAppear
UIViewController
这就是我的订单:
viewWillDisappear
viewWillAppear
viewDidDisappear
viewDidAppear
我的问题是,我可以期望这对于所有转换保持一致,还是在不同的线程上运行,并根据某些事情的加载时间,它们会变化吗?
编辑:凹凸
答案 0 :(得分:0)
嗯,问自己的正确问题是:你的viewController何时可见/显示?
UIViewController A
UIViewController B
UIScrollView C
1:A:viewWillDisappear - >可见,B不可见(C必须在A中)
2:B:viewWillAppear - >可见,B不可见(C必须在A中)
2到3过渡:A和B都可见
3:A:viewDidDisappear - >一个看不见的B可见(C必须在A中)
4:B:viewDidAppear - >一个看不见的B可见(C必须在B中)
正如您所看到的那样,当两个视图控制器视图都可见时,您在转换过程中有一个时刻,因此您不能只将C从a移动到b,您可能会想到一个解决方法......
也许您可以制作A的屏幕截图并将其添加到所有对象的A上,然后将C移动到B并进行转换
或者你可以在A中淡出C,进行过渡,然后在B中淡出C ...
答案 1 :(得分:0)
实际上,当您尝试将视图添加为子视图并且它已经具有超级视图时,在将其添加到新的超级视图之前,它将从其原始超级视图中删除(根据文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html) ......所以,甚至不必像我想的那样担心这件事。