【发布时间】:2024-05-22 04:30:01
【问题描述】:
我有一个 MFMailComposeViewController,我相信它实现正确。但是,当它显示在屏幕上时(通过模式),它只是打开,挂起一秒钟,然后关闭并记录 MFMailComposeResultCancelled
有什么想法吗?
if ([MFMailComposeViewController canSendMail]){
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
if( composer == nil ){
UIAlertView* alert_view = [[UIAlertView alloc] initWithTitle:@"message"
message:@"You will need to setup a mail account on your device before you can send mail!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert_view show];
return;
}else{
composer.mailComposeDelegate = self;
[composer setSubject:@"I have an issue"];
[composer setMessageBody:@"" isHTML:NO];
[composer setToRecipients:@[@"email"]];
}
[self presentViewController:composer animated:YES completion:^{
;
}];
EDIT 在日志中发现了这些
Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0xcda5e90>.
The operation couldn’t be completed. (Cocoa error 4097.)
【问题讨论】:
-
您是否要同时呈现多个视图控制器?
-
我不觉得我是,但
Unbalanced Calls似乎不这样说 -
是的,虽然将动画设置为 nil 没有用,但还是看了一下。它仍然调用
MFMailComposeResultCancelled并自行关闭 -
这段代码是从哪里调用的?
self代表的对象是什么?也许该对象正在被释放。
标签: ios iphone objective-c xcode ios7