2013-08-02 140 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

相關問題