iOS 11 测试版 : Mail View Controller called from app will not send mail

标签 ios objective-c iphone email mfmailcomposeviewcontroller

我必须更新一个企业应用程序,以便在运行 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/

相关文章:

ios - SecItemCopyMatching 返回的 SecIdentityRef 项多于使用 SecItemAdd 添加的项

ios - 更改 NavigationController 的内容 View 宽度而不影响导航栏

objective-c - mouseDown 时禁用 mouseEntered 事件(NSEvents Mac)

iOS模拟器7.1和8.3窗口高度差

objective-c - 如何以编程方式从内置 iOS 词典中搜索单词?

ios - iPad 2 UIImageview 显示图像不正确(渲染不正确)

objective-c - 如何将 NSString 方程解析成树? Objective-C

c# - Xamarin Forms Maps - 在 iOS 上显示当前位置

iphone - 单击警报 View 的按钮时如何将事件指示器放置在警报 View 中

iphone - 如何判断UINavigationControllers中的prior visibleViewController是什么?