2011-03-04 86 views
0

我有以下的代碼塊,它可以在模擬器和大多數設備上正常工作,但是在某些設備上(全部在相同的iOS版本4.2.1上),應用程序在達到時崩潰[mailComposer release]調用,有沒有人有任何洞察,爲什麼會發生這種情況?發佈MFMAilComposeViewController後presentModalViewController:崩潰

MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init]; 
    mailComposer.mailComposeDelegate = self; 
    [mailComposer setSubject:[self.webView stringByEvaluatingJavaScriptFromString:@"document.title"]]; 
    [mailComposer setMessageBody:[NSString stringWithFormat:@"Hello, \n\n Here is the link we discussed. \n %@", [self.webView.request URL]] isHTML:NO]; 
    [self presentModalViewController:mailComposer animated:YES]; 
    [mailComposer release]; 
+0

'presentModalViewController'保留它的視圖控制器並在彈出時釋放它,所以我不知道爲什麼會導致崩潰。 – 2011-03-04 18:44:52

+0

這也是我的理解,我只是想到了一件事。我使用'showFromBarButtonItem:animated:'在「UIActionSheet」中呈現「電子郵件鏈接」按鈕。當popover被解散並且模態視圖正在呈現時,會不會有某種UIKit碰撞? – 2011-03-04 18:48:28

回答

0

行,所以我設法弄清楚是什麼造成了我的問題與該問題是由沒有引起我的新的iPad 2

的幫助配置任何郵件帳戶,只需添加

if ([MFMailComposeViewController canSendMail]) 

在創建和呈現視圖之前,可以防止cr灰化,在我的else塊中,我添加了一個UIAlertView,讓用戶知道他們無需先配置郵件帳戶即可訪問該功能。

2

我有這個完全相同的問題,我真的不知道爲什麼它會崩潰,因爲presentModalViewController應該保留視圖控制器。在與之戰鬥後,我終於在視圖控制器上添加了一個屬性,它保留了對mfMailComposeViewController的引用,並且它工作正常。 :/

MFMailComposeViewController* mfMailComposeViewController; 
@property (nonatomic, retain) MFMailComposeViewController *mfMailComposeViewController; 

然後..

MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; 
controller.mailComposeDelegate = self; 
[controller setSubject:subject]; 
[controller setBody:body]; 
self.mfMailComposeViewController = controller; 
[controller release]; 
+0

太爛了!並不是說這是一個不好的解決方案,我打算做同樣的事情,但這只是跛腳,你必須這樣做......對我來說嚴重沒有意義。 – 2011-03-04 19:10:36

+0

完全同意.. – 2011-03-04 19:11:56

+0

Upvoted,要等待看看是否有人可以擺脫更多的光線。 – 2011-03-04 20:45:02