我有一个应用程序,其中我使用电子邮件给开发者按钮。当我按下按钮时,VEMailView-controller会打开。这只是MFMailComposeViewController的包装器。
当我点击“发送”按钮时,控制器必须关闭,但我只看到一个白色窗口。没有更多了。它必须关闭到主ViewController。如何修复?
这是我的代码:
#import <MessageUI/MessageUI.h>
#import "VEMailView.h"
@interface VEMailView () <
MFMailComposeViewControllerDelegate,
UINavigationControllerDelegate
>
// UILabel for displaying the result of the sending the message.
@end
@implementation VEMailView{
BOOL alreadyOpened;
}
- (void)viewDidLoad
{
[super viewDidLoad];
alreadyOpened = NO;
}
- (void) viewDidAppear:(BOOL)animated {
[self showMailPicker];
}
- (void)showMailPicker
{
if ([MFMailComposeViewController canSendMail])
{
[self displayMailComposerSheet];
}
}
- (void)displayMailComposerSheet
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"iOS"];
NSArray *toRecipients = [NSArray arrayWithObject:@"first@example.com"];
[picker setToRecipients:toRecipients];
NSString *emailBody = @" ";
[picker setMessageBody:emailBody isHTML:NO];
[self presentViewController:picker animated:YES completion:NULL];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Result: Mail sending canceled");
break;
case MFMailComposeResultSaved:
NSLog(@"Result: Mail saved");
break;
case MFMailComposeResultSent:
NSLog(@"Result: Mail sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Result: Mail sending failed");
break;
default:
NSLog(@"Result: Mail not sent");
break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
[self dismissViewControllerAnimated:YES completion:nil];
=>[controller dismissViewControllerAnimated:YES completion:nil];
- Larme