斜面驳回MFMailComposeViewController通过点击邮件链接中的UITextVie

2019-09-27 08:37发布

事实证明,这是由于iOS的8测试版的bug。 我已经通过错误号17318153报道它

我设置的电子邮件地址为UITextField。 这样做的目的是为iOS看到它的电子邮件地址,如果用户点击它,显示的实例MFMailComposeViewController发送电子邮件(也就是它)。

但是,如果用户再水龙头取消,该MFMailComposeViewController没有被解雇。 我试着设置我的viewController作为MFMailComposeViewControllerDelegate和压倒一切的mailComposeController: didFinishWithResult: error:但它不会被调用。 看似,当URL被点击时显示为MFMailComposeViewController委托未设置为自己。

我怎样才能让在取消按钮MFMailComposeViewController实际上解雇时显示的视图控制器?

我.H:

#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>

@interface AboutUsViewController : UIViewController<MFMailComposeViewControllerDelegate>{

    IBOutlet UIImageView *imageView;
    IBOutlet UITextView *companyName;
    IBOutlet UITextView *phoneNumber;
    IBOutlet UITextView *emailAddress;
    IBOutlet UITextView *aboutUsField;

}
@end

在.M:

- (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        emailAddress.text=@"support@email.com";
}



- (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];
}

Answer 1:

这是一个已知iOS8上Beta 1的问题。 确保打开与苹果的bug报告并张贴在这里的bug报告数量,以便人们可以复制。



文章来源: cant dismiss MFMailComposeViewController shown by clicking mail link in UITextVIew (iOS 8 beta bug)