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

Strange MFMailComposeViewController behaviour in iOS 14 (Swift)

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

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

也许这很重要:openMailApp 函数是从 objc 调用的 ViewController class.

该问题仅在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)
        }
}

我的问题和你的很相似。

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

UINavigationBar.appearance().translucent = false

此效果对整个应用程序可见 - 也在 MFMailComposeViewController 中。

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