我的应用程序中的第一个 ViewController 子类 UIImagePickerController 然后通过 didFinishPickingMediaWithInfo 回调,我执行以下操作:
EditViewController *editViewController = [[EditViewController alloc] initWithNibName:@"EditViewController" bundle:nil];
[self pushViewController:editViewController animated:YES];
此 ViewController 正确显示...然后,通过 IBAction,我执行以下操作:
PreviewViewController *previewViewController = [[PreviewViewController alloc] initWithNibName:@"PreviewViewController" bundle:nil];
previewViewController.tempImage = img;
[self.navigationController pushViewController:previewViewController animated:YES];
此 View 也正确显示。在这个 VC 中,我尝试使用 MFMailComposeViewController 用于发送电子邮件。当我尝试插入它时,我得到 不支持推送导航 Controller :
MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
[mailViewController setSubject:@"Subject Goes Here."];
[mailViewController setMessageBody:@"Your message goes here." isHTML:NO];
[self.navigationController pushViewController:mailViewController animated:YES];
但是当我展示它时:
[self presentModalViewController:mailViewController animated:YES];
mailViewController 仅出现一秒钟然后消失,我看到黑色背景(但不是以前的 VC View ),顶部有一个空导航栏。该应用程序此时仍在运行。
我究竟做错了什么?
最佳答案
如果您仍想推送 mailViewController,您可以这样做(仅限 iOS 7):
UIViewController *theMailViewController = [[mailViewController viewControllers] lastObject];
[self.navigationController pushViewController:theMailViewController animated:YES];
这样,MailViewController 的 rootViewController 将被推送到您的实际导航 Controller 中。
我希望这可以帮助你。
关于iphone - 呈现 MFMailComposeViewController,但它在可见后立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346950/