微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS 14 (Swift) 中奇怪的 MFMailComposeViewController 行为

如何解决iOS 14 (Swift) 中奇怪的 MFMailComposeViewController 行为

我在我的应用中实现了 MFMailComposeViewController。但是当我向下滚动然后向上滚动时,导航栏开始闪烁并且第一次不显示标题。为了显示它,我需要非常用力地从屏幕顶部滚动到底部

一个奇怪的行为,它们可能是相关的。 如果我在另一个应用程序(在其中运行良好)中打开此表单,然后返回到我的应用程序,它将开始在我的应用程序中正常运行,直到我将其删除并重新打开它。

也许这很重要:openMailApp func 是从 objc ViewController 类调用的。

这个问题只出现在iOS14,以前的版本没问题。

class func openMailApp(vc: UIViewController,delegate: MFMailComposeViewControllerDelegate) {
        let mailComposeViewController = MFMailComposeViewController()

        if MFMailComposeViewController.canSendMail() {
            mailComposeViewController.mailComposeDelegate = delegate
            mailComposeViewController.setToRecipients(["email@gmail.com"])
            mailComposeViewController.setSubject("My subject")
            mailComposeViewController.setMessageBody(".........\n...",isHTML: false)

            vc.present(mailComposeViewController,animated: true,completion: nil)
        }
}

example

解决方法

我遇到了和你非常相似的问题。

我认为这是由于如下所示的外观代理:

UINavigationBar.appearance().translucent = false

这个效果对整个应用程序都是可见的——也在 MFMailComposeViewController 中。

尝试设置 UINavigationBar.appearance().translucent = true。就我而言,它解决了问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。