iPhone应用程序 - 解雇模态视图控制器不会解除它

Sta*_*nLe 6 iphone uiviewcontroller uiview ios

我有一个UIViewController(称之为NumberTwo),我把它作为另一个UIViewController的模态视图控制器(称之为NumberOne).NumberTwo包含一个touchesBegan方法,用于监听触摸,它还有一个加速计方法,用于监听x,y或z方向的设备方向变化.NumberTwo有一个名为"Done"的按钮,当点击时,它将自己视为模态视图控制器:

[self dismissModalViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)

但似乎它仍在倾听触摸,它仍然在倾听加速度.当我解雇它时,我怎么能完全释放NumberTwo?我尝试添加一个发布调用,如下所示:

[self dismissModalViewControllerAnimated:NO];
[self release];
Run Code Online (Sandbox Code Playgroud)

但是这导致了EXEC_BAD_ACCESS.

Obl*_*ely 3

您在呈现控制器后是否释放了控制器?例如,在 NumberOneController 中呈现它的方法中,您是否有类似的内容:

NumberTwoController * controller = [NumberTwoController alloc] init];
// do stuff to config controller
[self presentModalViewController: controller];
[controller release];
Run Code Online (Sandbox Code Playgroud)

除非您想保留以NumberTwoController供重复使用,否则这将是通常的模式。该presentModalViewController方法确保控制器在使用时被保留。NumberTwoController当您在 内调用 时,它应该得到整理[self dismissModalViewControllerAnimated: NO]