Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将UIView的引用传递给下一个UIViewController_Iphone_Objective C_Ios_Cocoa Touch_Uiviewcontroller - Fatal编程技术网

Iphone 将UIView的引用传递给下一个UIViewController

Iphone 将UIView的引用传递给下一个UIViewController,iphone,objective-c,ios,cocoa-touch,uiviewcontroller,Iphone,Objective C,Ios,Cocoa Touch,Uiviewcontroller,我有一个应用程序,在导航转换期间,我试图将uicrollview从一个UIViewController传递到下一个。我试图找出应该使用哪些方法从其superview中删除uicrollview,然后将其附加到新的UIViewController 我在第一个UIViewController的viewdisappear/viewWillDisappear方法和第二个UIViewController的viewdisappear方法中执行了NSLog,这是我得到的顺序: viewWillDisappea

我有一个应用程序,在导航转换期间,我试图将
uicrollview
从一个
UIViewController
传递到下一个
。我试图找出应该使用哪些方法从其
superview
中删除
uicrollview
,然后将其附加到新的
UIViewController

我在第一个
UIViewController
viewdisappear
/
viewWillDisappear
方法和第二个
UIViewController
viewdisappear
方法中执行了
NSLog
,这是我得到的顺序:

viewWillDisappear
viewWillAppear
viewDidDisappear
viewDidAppear
我的问题是,我能期望所有的转换都保持一致吗?或者这些转换运行在不同的线程上,并且基于某些事情的加载时间,它们会有所不同吗


编辑:Bump

好吧,你应该问自己一个正确的问题:你的viewController何时可见/显示

UIVIEW控制器A

UIVIEW控制器B

UIScrollView C

1:A:ViewWillEnglish->A可见,B不可见(C必须在A中)

2:B:ViewwillDisplay->A可见,B不可见(C必须在A中)

2到3转换:A和B都可见

3:A:ViewDidDemouse->A不可见,B可见(C必须在A中)

4:B:ViewDidDisplay->A不可见,B可见(C必须在B中)

正如您所看到的,在转换过程中,当两个视图控制器视图都可见时,您有一个时刻,所以您不能仅仅将C从a移动到b,您可能会想到一个解决方法

也许你可以做一个a的屏幕截图,把它添加到所有对象的a中,然后把C移到B中,进行转换


或者您可以在a中淡入C,进行转换,然后在B中淡入C。

实际上,当您尝试将一个视图添加为子视图,并且它已经有一个superview时,它将在添加到新superview之前从其原始superview中删除(根据文档:)。。。所以你甚至不必像我想的那样担心这个问题。

似乎是一个动机可疑的合理问题。两个视图控制器不能各自拥有自己的滚动视图,这有什么原因吗?像这样移动视图似乎是自找麻烦,例如,您必须在任何给定时间协调哪个控制器具有滚动视图。如果滚动视图只是程序中其他地方存储的数据的反映,很难理解为什么每个视图都不能有自己的。@caleb-复制一个可缩放且有图像的UIScrollView是一件非常痛苦的事情,因为您可以将内容偏移量滚动到半像素,但是,当您手动设置它时,它会将其舍入到近像素。我已经知道了如何在不滚动或缩放的情况下设置imageview,但是由于我在视图控制器之间传递数据,即如果用户按下后退按钮,我必须返回一些信息,这样就更容易了。