1

我正在使用一個獨立的UINavigationBar,其中一個按鈕用於切換左側的側邊菜單。它完美無瑕。獨立的UINavigationBar和MFMailComposeViewController

現在我想添加一個使用MFMailComposeViewController的電子郵件反饋表單。它出現了,我可以編輯所有的字段(To,Subject,Body),但是當我想「發送」這個按鈕時不會有反應。當我點擊「取消」時,我注意到底層UINavigationBar按鈕的功能會觸發。看起來好像我的UINavigationBar在電子郵件撰寫對話框的NavigationBar「上方」,即使我只看到電子郵件撰寫對話框。

有沒有什麼辦法可以確保MFMailComposeViewController在其他所有方面?

感謝

+2

你如何添加UINavigationBar,以及如何呈現郵件編輯器? – jrturton 2012-03-06 08:02:12

+0

向我們展示您用來呈現郵件作曲者的代碼... – fbernardo 2012-03-06 08:54:52

+0

這是很難顯示的代碼。我有一個父視圖,其中有一個視圖被加載的子視圖,然後依次啓動MFMailComposeViewController。父視圖具有UINavigationBar(拖放到XIB上)。用於MFMailComposeViewController代碼是非常簡單並且如下 - (IBAction爲)btnSendEmailPressed:(ID)發送方{ MFMailComposeViewController *控制器= [[MFMailComposeViewController的alloc] INIT]; controller.mailComposeDelegate = self; [controller setToRecipients:[NSArray arrayWithObject:@「MYEMAILADDRESS」]]; – Joseph 2012-03-07 08:29:34

回答

2

我看到你設置委託self,這是很好的,但也實現了以下方法?

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

我想,取消是以某種方式處理,而不關閉組成視圖控制器?

我也嘗試修改下面一行:

[self presentModalViewController:controller animated:YES]; 

這樣:

[self.navigationController presentModalViewController:controller animated:YES]; 

如果您使用的是導航欄,如你所說,然後嘗試從您的視圖控制器的呈現不用控制器。

這可能是奇怪的,就像您的視圖控制器的一個奇怪的交互wantsFullscreenLayout。仔細檢查你的所有筆尖連接,如果它仍然無法工作,請嘗試推另一個「測試」視圖控制器。它可能是你的代碼或筆尖的東西,而不是MFMailComposeViewController本身。