我会尝试制作自己的popover(在iPhone,iOS6上),我需要在其他ViewController
的子视图中显示ViewController
。没关系 - 我用ViewController
接口创建了XIB
类,并添加了一个按钮和连接动作,返回一些NSLog
。我按以下方式加载ViewController
:
PopoverViewController *popover = [[PopoverViewController alloc] initWithNibName:@"PopoverViewController" bundle:nil];
[self.view addSubview:popover.view];
它正常工作 - 来自view
的{{1}}在PopoverViewController
上可见,但当我点击了ViewController
子视图的按钮时,我已经PopoverViewController
行错误:
EXC_BAD_ACCESS
如何处理它,以及如何正确显示第二个视图控制器?
感谢您的帮助。
答案 0 :(得分:2)
如果您使用的是ARC并且未对PopoverViewController
保持强引用,则即使将视图添加到另一个视图,也将取消分配视图控制器。然后当您点击弹出窗口视图中的按钮时,按钮的目标消失,应用程序崩溃。
添加实例变量以保持对PopoverViewController
的引用或更好,更新视图控制器的代码以正确地成为容器视图控制器。您真的不应该只将一个视图控制器的视图添加到另一个视图控制器的视图中。有关创建容器视图控制器的正确方法,请参阅UIViewController
的文档。