我有视图控制器(比如VC1)和第二视图控制器(VC2),它有一个按钮(带有touchUpInside事件,在VC2中实现)。 现在,在VC1中我这样做:
VC2 *vc = [Utils instantiateViewControllerFromMainStoryboard:@"myVC"];
[self.view addSubView:vc.view];
但是现在,当我点击VC2应用程序崩溃的按钮时?!为什么? 以及如何解决这个问题?
答案 0 :(得分:1)
问题很简单。第二个视图控制器中的按钮尝试调用VC2
中的方法来处理事件。但是在编写代码时,VC2
的实例早已不复存在,因为您从未对其进行过引用。
为什么要将第二个视图控制器的view
添加到第一个视图控制器的视图?为什么不使用导航控制器并将第二个视图控制器推入视图?
如果您需要保持原样,那么您必须让第一个视图控制器保持对第二个视图控制器的强引用,以便它不被取消分配。