【问题标题】:After hitting cancel in a MFMessageComposeViewController nothing happens在 MFMessageComposeViewController 中点击取消后,没有任何反应
【发布时间】:2011-10-28 20:14:48
【问题描述】:

虽然在使用MFMailComposeViewController 之后,转移到MFMessageComposeViewController 是直截了当的,但是有一个问题。

假设这段代码:

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

邮件的工作方式是这样,但在短信中,你应该将委托设置为不同的内部结构,如下所示:

[SMS setMessageComposeDelegate:self];

希望你不要像我今天早些时候那样陷入困境。

【问题讨论】:

    标签: iphone objective-c ios sms messageui


    【解决方案1】:

    你需要实现委托方法-(void)mailComposeController(MFMailComposeViewController*)controller didFinishWithResult (MFMailComposeResult)result error:(NSError*)error:

    在里面你应该自己解散它:

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

    【讨论】:

    【解决方案2】:

    您可以在 Apple 文档中查看 MFMailComposeResult

      enum MFMailComposeResult {
        MFMailComposeResultCancelled,
        MFMailComposeResultSaved,
        MFMailComposeResultSent,
        MFMailComposeResultFailed
     };
     typedef enum 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2022-08-19
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多