1

我已经创建了两个视图控制器,说AB故事板和 ARC。VCA调用BbyperformSegueWithIdentifierB返回Aby dismissViewControllerAnimated。这很好用,直到我Memory Warning在 VC 中模拟 a B。如果我这样做,我的应用程序将崩溃

Thread 1: EXC_BAD_ACCESS (code=1, address=0x...)

一旦我执行dismissViewControllerAnimated. 为了调试,我添加了自己loadViewA(仅使用 NSLog 和[super loadView]),我可以看到,它被调用并且应用程序在[super loadView].

我知道,A由于内存警告,视图层次结构被破坏了。但据我了解文档,它应该dismissViewControllerAnimatedB. 在loadView我的代码不应该运行的时候,一切都将被初始化,viewDidLoad并且viewWillAppear在崩溃之前它们都不会被调用。有没有人有一些建议如何进一步调试,或者如何在坏地址变坏之前获得它的身份?

4

2 回答 2

0

逐个对象重建视图控制器后发现问题。在 A 中,我使用了一个 UIPanGestureRecognizer 和一个 UITapGestureRecognizer。在情节提要上添加这两个对象也添加了两行到 viewDidUnload 中,在卸载 A 的视图时将两个识别器设置为 nil。对于 ...GestureRecognizer 这似乎是一个错误。删除这两行解决了这个问题。

于 2012-08-25T15:18:13.847 回答
0

尝试在presentingViewController中使用strong

例如:

@property(强,非原子)CameraViewController *myCVC;

于 2012-08-21T02:21:53.730 回答