我有一个 UIViewController(称为 NumberTwo),我将其作为来自另一个 UIViewController(称为 NumberOne)的模态视图 Controller 呈现。 NumberTwo 包含一个用于监听触摸的 touchesBegan 方法,它还有一个用于监听 x、y 或 z 方向上的设备方向变化的加速度计方法。 NumberTwo 有一个名为“Done”的按钮,当它被点击时,它本身将作为模态视图 Controller 解除:
[self dismissModalViewControllerAnimated:NO];
但它似乎仍在监听触摸,并且仍在监听加速度。当我解雇它时,我怎样才能完全释放 NumberTwo?我尝试按如下方式添加发布调用:
[self dismissModalViewControllerAnimated:NO];
[self release];
但这导致了 EXEC_BAD_ACCESS。
最佳答案
提交后是否释放了 Controller ?例如。在你在 NumberOneController 中呈现它的方法中,你是否有类似的东西:
NumberTwoController * controller = [NumberTwoController alloc] init];
// do stuff to config controller
[self presentModalViewController: controller];
[controller release];
除非您想保留 NumberTwoController
以供重复使用,否则这将是通常的模式。 presentModalViewController
方法确保 Controller 在使用时保留。当您在 NumberTwoController
中调用 [self dismissModalViewControllerAnimated: NO]
时,它应该会被整理。
关于iPhone App - 关闭模态视图 Controller 不会释放它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645593/