iOS 11 beta:从应用程序调用的Mail View Controller不会发送邮件

时间:2017-07-13 21:00:18

标签: ios objective-c iphone email mfmailcomposeviewcontroller

我不得不更新企业应用程序,以便在运行iOS 11 beta 3的64位iOS设备上使用。该应用程序编写一封包含特定数据的电子邮件,用户将电子邮件发送到服务器,在那里进行处理提取数据。 (我更愿意通过TCP将其发送到服务器,但这不是我的决定。)

该应用程序功能齐全,它将使用特定数据组成电子邮件正文,将其发送到服务器电子邮箱,并在顶部显示“发送”按钮。但点击“发送”按钮什么都不做。就此而言,点击“取消”按钮只会显示该警告,要求确保您要取消,并且无论是否有任何回复,电子邮件视图都不会被解除。

这是Mail Compose代码:

NSString *strEmailAddress = [[NSUserDefaults standardUserDefaults] objectForKey:kEmailAddress];
NSArray *listOfRecipients = [[NSArray alloc] initWithObjects:strEmailAddress, nil];

MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
[mailViewController setSubject:@"Equipment Inventory"];
[mailViewController setMessageBody:totalArray isHTML:NO];
[mailViewController setToRecipients:listOfRecipients];
[self presentViewController:mailViewController animated:YES completion:nil];

这是我在之前的32位版本的应用程序中使用的,它已经运行了五年多。

因为我正在处理iOS和Xcode的测试版,我怎么能弄清楚这是操作系统或代码中的错误? Xcode或手机上都没有显示错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要实现委托方法并关闭控制器。

如果符合,该方法将提供错误。

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(nullable NSError *)error {

   [controller dismissViewControllerAnimated:true completion:nil];
}