2013-08-02 103 views
0

我正在使用MJDetailViewController作为管理应用程序在应用程序内购买的弹出控制器。保留视图控制器

由于此视图控制器可以多次调用如同用户在其上的再次点击它会导致应用程序崩溃,我不能在

- (IBAction)8Button { 
MJDetailViewController *detailViewController = [[MJDetailViewController alloc] initWithNibName:@"MJDetailViewController" bundle:nil]; 
[self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationSlideTopTop]; 
[detailViewController release]; 
} 

通常的方式释放出来。

由于它没有被释放,它导致了我需要修复的内存泄漏。我假设我需要保留detailViewController并在dealloc阶段释放它,但我不知道如何做到这一点。

加载detailViewController的代码如下:

- (IBAction)8Button { 
MJDetailViewController *detailViewController = [[MJDetailViewController alloc] initWithNibName:@"MJDetailViewController" bundle:nil]; 
    [self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationSlideTopTop]; 
} 

任何帮助将是非常欢迎...

+0

由于它的唯一引用存储在一个局部变量中,它如何被“多次调用”? – newacct

回答

0

要解雇你不应该释放它的细节视图控制器,你应该是这样做的:

[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade]; 
+0

多数民众赞成它是目前设置的,因为这是默认情况下,但是当我分析它在Xcode它提出了“潜在的泄漏存储到'detailViewController'对象' – nobbsy

+0

用户如何再次点击' ?它被解除后? – Wain

+0

popupviewcontroller位于主视图控制器的顶部,当后台点击时关闭popupview控制器,因此再次打开它的按钮仍然位于主视图控制器上,因此用户可以选择它 – nobbsy

相关问题