首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFMailComposeViewController not dismiss with Cancel按钮

MFMailComposeViewController是iOS开发中的一个类,用于发送电子邮件。它提供了一个用户界面,允许用户编辑邮件内容、添加附件并选择收件人等操作。

在使用MFMailComposeViewController时,有时会遇到一个问题,即点击Cancel按钮后,邮件视图控制器没有被正确地关闭。这个问题的解决方法如下:

  1. 确保MFMailComposeViewController的delegate属性被正确设置。在创建MFMailComposeViewController对象之前,需要设置其delegate属性为当前视图控制器,例如:mailComposeViewController.delegate = self;
  2. 实现MFMailComposeViewControllerDelegate协议中的方法。在当前视图控制器中,需要实现以下两个方法:- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { [controller dismissViewControllerAnimated:YES completion:nil]; } - (void)mailComposeControllerDidCancel:(MFMailComposeViewController *)controller { [controller dismissViewControllerAnimated:YES completion:nil]; }这两个方法分别在用户完成邮件发送或取消发送时被调用,通过调用dismissViewControllerAnimated方法来关闭邮件视图控制器。
  3. 检查是否在其他地方调用了dismissViewControllerAnimated方法。有时候在代码中的其他地方可能会调用该方法,导致邮件视图控制器无法正确关闭。确保只在MFMailComposeViewControllerDelegate协议方法中调用该方法。

MFMailComposeViewController的优势是提供了一个简单易用的界面,方便用户发送电子邮件。它适用于需要在应用程序中发送邮件的场景,例如发送反馈、邀请、通知等。

腾讯云没有直接相关的产品和产品介绍链接地址,但可以使用腾讯云的云服务器、对象存储等服务来支持邮件发送功能。具体使用方法可以参考腾讯云的文档和开发者资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

has leaked window com.android.internal.policy.impl.PhoneWindow解决(Dialog.canceldismiss、hide区别)

();             mProgressDialog = null;         } 看来,让dialog消失有好几种方法: hide、canceldismiss,有什么区别呢...dismiss方法会释放对话框所占的资源,而hide方法不会。activity退出前必须调用dismiss方法关闭对话框。...所以,最正确的调用方法是,在activity的onDestory方法里调用dismiss方法,其他地方都用hide方法隐藏对话框。...(来自:http://blog.csdn.net/leeo1010/article/details/36420927) 而cancel其实是在调用dismiss之前执行注册OnCancelListener...现在问题清楚了,就是如果你在创建AlertDialog的时候调用了setOnCancelListener 这个mCancelMessage变量有作用,否则dismisscancel等同。

46120

iOS_按钮 cancel 手势 跟 swipe上滑手势 冲突

按钮cancel手势 跟 swipe上滑手势 冲突 问题 最近做需求遇到一个问题,设计想在播放器底部播控栏添加上滑手势,换起换台面板。...但是因为播控栏上很多按钮,当手势起始位置为按钮内时上滑别会被识别为 UIButton 的 cancel 手势,导致无法换起面板。...搜索了一番,也没找到解决方案,最后自己各种猜测➕测试,得出一个解决方案:按钮点击事件改用 Tap 手势实现,扩展 UIView 在 touchesMoved 方法里判断手势方向是否为上滑。...self.touchPoint = point } } } 使用 1、view 和 button 都可响应上滑手势 // MARK: - 解决:上滑手势 跟 按钮...cancel 手势 冲突 func swipeGestureTest() { let view = UIView(frame: self.view.bounds) view.backgroundColor

15420

Android开发笔记(六十六)自定义对话框

与setItems的区别在于有显示底部的交互按钮,并且每项右边有单选按钮。 setMultiChoiceItems : 设置多选列表的内容视图。底部有交互按钮,并且每项右边有复选按钮。...setPositiveButton : 设置肯定按钮的信息,如文本、点击监听器。 setNegativeButton : 设置否定按钮的信息,如文本、点击监听器。...setNeutralButton : 设置中性按钮的信息,如文本、点击监听器。 --以上方法用于设置交互按钮。...接着定义一个dialog布局文件,左上角放一个取消按钮,右上角放一个确定按钮,中间放滚轮控件。然后注册相关的事件监听器,如两个按钮的点击事件,滚轮的选中事件。...= (TextView) view.findViewById(R.id.tv_cancel); tv_sure = (TextView) view.findViewById(R.id.tv_sure

2.4K20

手机卫士黑名单功能(ListView结合SQLite增删改)

修改界面,在顶部横条上增加一个添加按钮,点击打开一个自定义对话框,输入电话号码和拦截模式保存到数据库 自定义对话框看这篇http://www.cnblogs.com/taoshihan/p/5370378...Button对象 调用Button对象的setOnClickListener()方法,设置点击事件,匿名内部类实现OnClickListener接口,重写onClick()方法 调用AlertDialog对象的dismiss...Button对象 调用Button对象,设置点击事件 获取AlertDialog.Builder对象,展示是否确认删除的对话框 调用AlertDialog.Builder对象,设置确认按钮和取消按钮,注意设置点击事件...(); } }); cancel.setOnClickListener(new OnClickListener() { @...Override public void onClick(View v) { alertDialog.dismiss();

86330
领券