2011-10-28 18 views
3

MFMailComposeViewControllerを使用した後、MFMessageComposeViewControllerへの移動はストレートフロートでしたが、キャッチがあります。MFMessageComposeViewControllerで打ち消した後に何も起こらない

このコードを仮定します

MFMessageComposeViewController* mySMS = [[MFMessageComposeViewController alloc] init]; 
[mySMS setDelegate:self]; 
[self presentModalViewController:mySMS animated:YES]; 

それは、メールにこのように動作しますが、SMSで使用すると、このような内部構造にデリゲートを異なる設定する必要があります。

[SMS setMessageComposeDelegate:self]; 

は、あなたが得ることはありませドンホープ今日私がやったようにこれに固執する。

答えて

4

あなたは、デリゲートメソッド-(void)mailComposeController(MFMailComposeViewController*)controller didFinishWithResult (MFMailComposeResult)result error:(NSError*)error:

を実装し、その中にあなたがそれを自分で却下すべきである必要があります。

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

上記のコードは、MFMailComposerクラスのコードです。質問は特にMFMessageComposerに質問されました。 – Ahmed

+0

MFMessageComposerには、次のものを使用する必要があります。https://developer.apple.com/library/ios/documentation/MessageUI/Reference/MFMessageComposeViewControllerDelegate_protocol/index.html#//apple_ref/occ/intfm/MFMessageComposeViewControllerDelegate/messageComposeViewController:didFinishWithResult : – Melvin

0

あなたは

enum MFMailComposeResult { 
    MFMailComposeResultCancelled, 
    MFMailComposeResultSaved, 
    MFMailComposeResultSent, 
    MFMailComposeResultFailed 
}; 
typedef enum MFMailComposeResult MFMailComposeResult; 

アップルのドキュメントでMFMailComposeResultを見ることができますし、却下しなければなりませんコントローラーをデリゲートメソッドで

- (void) mailComposeController:(MFMailComposeViewController *)controller   didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    switch (result){ 
    case MFMailComposeResultCancelled: 
     NSLog(@"Mail cancelled"); 
     break; 
    case MFMailComposeResultSaved: 
     NSLog(@"Mail saved"); 
     break; 
    case MFMailComposeResultSent: 
     NSLog(@"Mail sent"); 
     break; 
    case MFMailComposeResultFailed: 
     NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
     break; 
    default: 
     break; 
    } 
// Close the Mail Interface 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 
関連する問題