0

我会尝试制作自己的弹出框(在 iPhone、iOS6 上),我需要ViewController在其他ViewController. 没关系 - 我创建了ViewController带有XIB接口的类,并添加了一个按钮和连接的操作,它们返回了一些NSLog. 我加载ViewController如下:

PopoverViewController *popover = [[PopoverViewController alloc] initWithNibName:@"PopoverViewController" bundle:nil];

[self.view addSubview:popover.view];

它正在工作 - viewfromPopoverViewController在 上可见ViewController,但是当我单击作为子视图的按钮时,PopoverViewController我遇到了EXC_BAD_ACCESS错误:

0x3968a5b0:  ldr    r3, [r4, #8]

如何处理它,以及如何正确显示第二个视图控制器?

谢谢你的帮助。

4

1 回答 1

2

如果您使用 ARC 并且没有对 进行强引用PopoverViewController,那么即使您将其视图添加到另一个视图,视图控制器也会被释放。然后,当您点击弹出窗口视图中的按钮时,按钮的目标消失了,应用程序崩溃了。

要么添加一个实例变量以保持对 的引用,PopoverViewController要么更好地更新视图控制器的代码以正确地成为容器视图控制器。您真的不应该只将一个视图控制器的视图添加到另一个视图控制器的视图中。UIViewController有关创建容器视图控制器的正确方法,请参阅文档。

于 2013-03-10T22:06:20.190 回答