【发布时间】:2012-05-18 07:23:30
【问题描述】:
我有一个应用程序,我试图在导航转换期间将UIScrollView 从一个UIViewController 传递到下一个。我试图弄清楚我应该使用哪些方法从其superview 中删除UIScrollView,然后将其附加到新的UIViewController。
我在第一个UIViewController 的viewDiDisappear / viewWillDisappear 方法和第二个UIViewController 的viewDidAppear / viewWillAppear 方法中做了一个NSLog,这是我得到的顺序:
viewWillDisappear
viewWillAppear
viewDidDisappear
viewDidAppear
我的问题是,我是否可以期望这对于所有转换都保持一致,或者这些转换是否在不同的线程上运行并基于某些事物的加载时间,它们会有所不同吗?
编辑:碰撞
【问题讨论】:
-
似乎是一个合理的问题,动机可疑。两个视图控制器不能各自拥有自己的滚动视图是否有原因?像这样移动视图似乎是自找麻烦,例如您必须在任何给定时间协调哪个控制器具有滚动视图。如果滚动视图只是程序中其他地方存储的数据的反映,那么很难理解为什么每个视图都不能拥有自己的。
-
@caleb - 复制一个可缩放并具有图像的 UIScrollView 真是太痛苦了,因为您可以将内容偏移滚动到半像素,但是当您手动设置它时它将它四舍五入到接近像素。我已经想出了如何通过仅设置图像视图而不滚动或缩放它来做到这一点,但是由于我在视图控制器之间传递数据,即如果用户按下后退按钮,我无论如何都必须发回一些信息,所以它更容易。
标签: iphone objective-c ios cocoa-touch uiviewcontroller