邮件接口取消按钮不工作ios-MFMailComposeViewController类
我有一个webview对象(aWebView),它被添加到当前窗口的顶部,如下所示-邮件接口取消按钮不工作ios-MFMailComposeViewController类,ios,uiviewcontroller,uiwebview,Ios,Uiviewcontroller,Uiwebview,我有一个webview对象(aWebView),它被添加到当前窗口的顶部,如下所示- UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)]; [webWindow addSubview:aWebView]; [webWindow makeKeyAndVisible]; MFMailComposeViewController *mailController = [[[MFMail
UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)];
[webWindow addSubview:aWebView];
[webWindow makeKeyAndVisible];
MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];
if([MFMailComposeViewController canSendMail])
{
[mailController setMessageBody:@"hello" isHTML:NO];
[mailController setSubject:@"subject"];
mailController.mailComposeDelegate = self;
[self presentModalViewController:mailController animated:YES];
[mailController release];
}
- (void)mailComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result) {
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSent:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
我有一个viewcontrollerobj,它是aWebView的子视图-
[webView addSubview:viewcontrollerobj.view];
然后我在ViewController中调用sendInAppMail方法-
[sviewcontroller sendInAppMail];
SendInAppMail看起来像这样-
UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)];
[webWindow addSubview:aWebView];
[webWindow makeKeyAndVisible];
MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];
if([MFMailComposeViewController canSendMail])
{
[mailController setMessageBody:@"hello" isHTML:NO];
[mailController setSubject:@"subject"];
mailController.mailComposeDelegate = self;
[self presentModalViewController:mailController animated:YES];
[mailController release];
}
- (void)mailComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result) {
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSent:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
didFinishWithResult看起来像这样-
UIWindow *webWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 20, 320,460)];
[webWindow addSubview:aWebView];
[webWindow makeKeyAndVisible];
MFMailComposeViewController *mailController = [[[MFMailComposeViewController alloc] init] autorelease];
if([MFMailComposeViewController canSendMail])
{
[mailController setMessageBody:@"hello" isHTML:NO];
[mailController setSubject:@"subject"];
mailController.mailComposeDelegate = self;
[self presentModalViewController:mailController animated:YES];
[mailController release];
}
- (void)mailComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result) {
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSent:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
邮件视图控制器显示良好。问题是,当我点击cancel时,它会显示delete/save draf t选项,单击delete/save后,mail viewcontroller不会消失
当我查看控制台时,它会显示以下日志消息-
“演示由其superview剪辑的操作表。某些控件可能不会响应触摸。在iPhone上,请尝试-[UIActionSheet showFromTabBar:]或-[UIActionSheet showFromToolbar:]而不是-[UIActionSheet showInView:]
我没有在任何地方使用UIActionSheet,过去也没有使用过,所以我无法理解它在说什么
我看了这个——
但给出的解决方案似乎非常针对某一情况。不确定这是否是问题所在,但这是我要考虑的第一件事 根据您收到的错误消息,听起来其中一个视图(您定义的
aWebView
或viewcontrollerobj
中的视图)没有为MFMailComposeViewController
留出足够的空间,这意味着它的尺寸小于MFMailComposeViewController
所需的尺寸。它实际上并没有剪切内容,所以您可以看到它,但它阻止了触摸,这样它们就不会访问MFMailComposeViewController
我希望这足够清楚——我在这里很难正确描述我的想法。我不认为这会阻碍接触。因为当我第一次点击“取消”时,它会显示“删除/保存草稿”选项。我在didFinishWithResult中使用NSLOg语句再次运行了它,它似乎根本没有被调用。理想情况下,当我点击删除草稿时,它应该被调用,整个邮件对话框应该消失!天啊!愚蠢的错误是它的“mailComposeController”而不是“mailComposeViewController”哈哈!哎呀。很高兴你发现了这个问题。