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

标签 ios 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 .就我而言,它解决了问题。

关于ios - iOS 14 (Swift) 中奇怪的 MFMailComposeViewController 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66275453/

相关文章:

ios - 无法使用 MFMailComposeViewController 在应用程序中发送电子邮件

iphone - iOS 照片库 - flickr

ios 检查用户是否登录到 icloud,如果没有则将用户发送到设置

ios - Swift 2 iOS - 获取按创建日期排序的文件列表 - 更简洁的解决方案?

swift - 'statusBarStyle' 的 Setter 在 iOS 9.0 : Use -[UIViewController preferredStatusBarStyle] 中被弃用

ios - Spotify SPTAuthViewController 问题

iphone - 无法关闭 iPhone 中的电子邮件编辑器 View ?

ios - 为什么两个初始化函数都被调用

ios - Cordova 文件数据目录远离 iOS 应用程序更新的变化

SWIFT - mailComposeDelegate 未调用 : cancel of MFMailComposeViewController doesn't work