1

我想使用完成塊語法的MFMailComposeViewControllermailComposeDelegate屬性,但不知道這是否可能。類似的事情在TWTweetComposeViewControllercompletionHandler屬性是如何工作的:是否可以使用MFMailComposeViewController mailComposeDelegate的完成塊語法?

TWTweetComposeViewController __weak *twee = tweeter; 
tweeter.completionHandler = ^(TWTweetComposeViewControllerResult result) { 
    // code here 
}; 

我的代碼創建MFMailComposeViewController,但隨後「通過電子郵件分享」來保存,因爲這是一個參考我的viewController參數,功能是不是在UIViewcontroller,但自定義MYSharing類。

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
// more code here 
_viewController = viewController; 
picker.mailComposeDelegate = self; 
[viewController presentModalViewController:picker animated:YES]; 

mailComposeController:didFinishWithResult:error:MFMailComposeViewControllerDelegate使用該_viewController以關閉該模態。

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    [_viewController dismissModalViewControllerAnimated:YES]; 
} 

不理解塊很好,是否有一些看起來像這樣的語法?

picker.mailComposeDelegate = ^(???)(??? ??? ???) { 
    [viewController dismissModalViewControllerAnimated:YES]; 
} 

我發現MFMailComposeViewController(BlocksKit)(其在github源),但即便如此,語法轉換絆倒了我。

+0

你想達到什麼目的?檢查委託方法,他們可能會幫助,雖然不是塊語法,但在某些點回調。 – Rog

+0

'_viewController = viewController'感覺錯了,當我可以從一個塊內引用viewController(如使用TWTweetComposeViewController) –

+0

委託方法傳遞一個對名爲'controller'的視圖控制器的引用no? – Rog

回答

2

現在沒有用於MFMailComposeViewController的完成處理程序。

如果要引用呈現MFMailComposeViewController(如下所示的代碼)的視圖控制器,請使用presentsViewController屬性。

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    [controller.presentingViewController dismissModalViewControllerAnimated:YES]; 
} 
0

爲什麼你不只是調用從MFMailComposeViewControllerDelegate方法[self dismissModalViewControllerAnimated:YES];

+0

我更新了這個問題,以澄清這是不是在UIViewController,所以'自我'是行不通的。 –

相關問題