gpt4 book ai didi

ios - MFMailComposeViewController 在 iOS 8 中不显示

转载 作者:技术小花猫 更新时间:2023-10-29 11:19:20 25 4
gpt4 key购买 nike

当我运行 Xcode 6 并使用 iOS 8 模拟器时,我试图加载 MFMailComposeViewController,但它没有出现。相反,我收到此错误...

“警告:尝试在 ViewController 上呈现 MFMailComposeViewController:0x7c30c400:0x7baf6000 已经呈现(空)”

这个完全相同的代码已经运行了将近一年,没有变化。可以肯定的是,我使用 iOS 7.1 模拟器在 Xcode 6 中运行我的应用程序,它像以前一样完美地运行。

有谁知道如何在 iOS 8 中显示 MFMailComposeViewController View ?这似乎是一项简单的任务,我相信它很容易解决。

附言。不需要发布,因为它是标准代码,但无论如何...

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];

picker.mailComposeDelegate = self;

//Current Date
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSDate *date = [NSDate date];
//Ensure UTC DATE
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"MM/dd/yyyy 'at' HH:mm:ss UTC"];
NSString *myString = [formatter stringFromDate:date];

NSString *emailBody = [NSString stringWithFormat:@"Feedback time at %@.<br><br>Name:", myString];
[picker setMessageBody:emailBody isHTML:YES];

NSString *subject, *emailAddress;

[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"MM/dd/yyyy"];
subject = [NSString stringWithFormat:@"Feedback"];

//Set the Subject
[picker setSubject:subject];

emailAddress = @"xxx@example.com";

//Set the Receivers
NSArray *myReceivers = [[NSArray alloc] initWithObjects:emailAddress, nil];
[picker setToRecipients:myReceivers];

//It saves the file name as the same as Subject here!
picker.navigationBar.barStyle = UIBarStyleDefault;//UIBarStyleBlack;
[self presentViewController:picker animated:YES completion:^{}];

最佳答案

我在 iOS 8 上遇到过类似的问题,但在 iOS 7 及之前的版本上运行良好。

在用户按下 UIActionSheet 中的按钮后,我展示了我的 MFMailComposeViewController。因此,在之前的实现中,我将邮件编辑器放在 UIActionSheetDelegate 函数中并显示 MFMailComposeViewController:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

函数名称很简单。

但是,可能是由于一些 UI 动画冲突,同时显示 MFMailComposeViewController 和关闭 UIActionSheet 导致 MFMailComposeViewController 不显示。

  • 解决方案

我的解决方案是将 MFMailComposeViewController 显示在 UIActionSheetDelegate 函数中:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex

UIActionSheet 动画之后调用。

希望这可以帮助有同样问题的人。

关于ios - MFMailComposeViewController 在 iOS 8 中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com