我有视图控制器(比如VC1)和第二个视图控制器(VC2),其中有一个按钮(带有touchUpInside event,在VC2中实现)。
现在,在VC1中,我这样做:
VC2 *vc = [Utils instantiateViewControllerFromMainStoryboard:@"myVC"];
[self.view addSubView:vc.view];
但是现在,当我点击VC2应用程序上的按钮时会崩溃吗?为什么?
以及如何解决呢?
最佳答案
问题很简单。第二个视图控制器中的按钮尝试调用VC2
中的方法来处理事件。但是在编写代码时,VC2
的实例早已消失,因为您从未保留对其的引用。
为什么将第二个视图控制器的view
添加到第一个视图控制器的视图?为什么不使用导航控制器并将第二个视图控制器推入视图?
如果您需要保持原样,则必须让第一个视图控制器对第二个视图控制器保持强烈的引用,以使它不会被释放。
关于ios - iOS SDK- subview 和操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20362635/