我正在尝试追踪我为使用 MFMailComposeViewController 实例在应用程序中创建电子邮件而编写的 cordova/phonegap 插件中的错误来源。
第一次展示作曲家视图时,每个人都可以正常工作。用户可以通过发送消息或取消来关闭邮件编写器。但是,presentViewController
再次调用会使作曲家中的取消和发送按钮变得无用。didFinishWithResult
当使用控制器的第二个视图按下无法操作的按钮时,我的代表永远不会调用。
下面是我所看到的简化再现(简单的故事板有一个视图,其中包含一个连接到 my 的 UIButton (IBAction)sendMail
)。我在这里的 obj-c 做错了什么?我不应该能够显示控制器,将其关闭并再次显示吗?
视图控制器.h:
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController
@end
视图控制器.m:
#import "ViewController.h"
@interface ViewController () <MFMailComposeViewControllerDelegate>
@property (nonatomic, weak) IBOutlet UIButton *mailButton;
@property(nonatomic, strong) MFMailComposeViewController* picker;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.picker = [[MFMailComposeViewController alloc] init];
self.picker.mailComposeDelegate = self;
}
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (IBAction)sendMail
{
[self presentViewController:self.picker animated:YES completion:NULL];
}
@end