我必须更新一个企业应用程序,以便在运行 iOS 11 beta 3 的 64 位 iOS 设备上使用。该应用程序编写一封包含特定数据的电子邮件,用户将电子邮件发送到服务器,并在服务器上进行处理提取数据。 (我更愿意通过 TCP 将其发送到服务器,但这不是我的决定。)
该应用程序功能齐全,它将使用特定数据组成电子邮件正文,将其发送到服务器邮箱,并在顶部显示带有“发送”按钮的 View 。但是点击“发送”按钮没有任何作用。就此而言,点击“取消”按钮只会弹出该警报,询问您是否要取消,并且无论是哪种响应,都不会关闭电子邮件 View 。
这是邮件撰写代码:
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 或手机上均未显示任何错误。
感谢您的帮助。
最佳答案
您需要实现委托(delegate)方法并关闭 Controller 。
如果一致,该方法将提供错误。
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(nullable NSError *)error {
[controller dismissViewControllerAnimated:true completion:nil];
}
关于iOS 11 测试版 : Mail View Controller called from app will not send mail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45090802/