2012-05-18 196 views
0

我有我打電話給我的方法的觀點:應用程序崩潰,當我嘗試打電話dismissViewController

Twitter *tweet = [[Twitter alloc] initWithNibName:@"Twitter" bundle:nil]; 

[self presentModalViewController:tweet animated:YES]; 

的視圖 - 控制提出了沒有任何問題。現在,當我嘗試在twitter視圖控制器的方法中調用dismissviewcontroller時: [self dismissModalViewControllerAnimated:NO];

該應用程序崩潰了嗎?

即使基本結構是正確的,但仍應用程序崩潰?爲什麼 ?

+0

請向我們展示您要求解僱的代碼,以及控制檯錯誤是什麼。 – Mat

+1

請向我們展示twitter類的'dealloc'方法。 – Alexander

+0

- (void)dealloc {tweetTextView release;};};}} \t [標籤發佈]; \t \t [entry release]; \t //self.entry = nil; \t [iTunesButton release]; [_engine release]; \t [tweetTextField release]; \t [classN release]; [super dealloc]; } – user1374408

回答

2

嘗試:[self.parentViewController dismissModalViewControllerAnimated:NO]; - 這是因爲模態視圖控制器由呈現Twitter的控制器,控制器提出,它是一個需要解僱模態控制器(這是Twitter的控制器)

UPDATE: 如果你的目標iOS 5以上再使用:

[self dismissViewControllerAnimated:NO completion:nil]; 
//or 
[self.presentingViewController dismissViewControllerAnimated:NO completion:nil]; 

否則,如果你想保持向後兼容使用:

if([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) 
{ 
    [self dismissViewControllerAnimated:NO completion:nil]; 
} 
else 
{ 
    [self dismissModalViewControllerAnimated:nil]; 
} 
+2

parentViewController在iOS 5上不可用。 – rckoenes

+1

是的,對於iOS 5 ** self.presentingViewController ** – graver

+0

也調用'[self dismissModalViewControllerAnimated:NO];'應該關閉呈現的viewcontroller,即使它在所呈現的視圖中被調用控制器它自己。 – rckoenes

0

您需要淡化導航控制器中的視圖。試試這個:

[self.navigationController dismissModalViewControllerAnimated:YES]; 
0

這樣的問題,當你在你的析構函數(該dealloc法)overreleasing事情經常發生。 IB總是添加代碼來釋放對象,但它不會看它是否已經存在。

相關問題