Я пытаюсь отобразить MFMailComposeViewController
в приложении.
if MFMailComposeViewController.canSendMail() {
let mailComposeViewController = MFMailComposeViewController()
mailComposeViewController.navigationBar.tintColor = .white
mailComposeViewController.mailComposeDelegate = self
mailComposeViewController.setToRecipients(["support@gmail.com"])
mailComposeViewController.setSubject("Feedback")
present(mailComposeViewController, animated: true)
} else {
print("This device is not configured to send email. Please set up an email account.")
}
В iOS 12 он появляется без проблем. И в симуляторе, и в устройстве.
Но когда я запускаю один и тот же проект на устройстве под управлением iOS 13, он выглядит следующим образом.
Цвет панели навигации исчез. Также кнопка отправки также невидима.
Поэтому я добавил mailComposeViewController.navigationBar.backgroundColor = .mv_primary
, но она все равно не отображается на устройстве. Странно, но цвет фона отображается в симуляторе.
Однако, странное поведение. MFMailComposeViewController
немедленно закрывается, когда я запускаю его в симуляторе.
Следующая ошибка также отображается в консоли Xcode.
[Common] [FBSSystemService] [0x5f27] Ошибка обработки открытого запроса для com.apple.MailCompositionService: {userInfo = {FBSOpenApplicationRequestID = 0x5f27;} DefaultError =;} 2019-11-01 14: 40: 05.214158 + 0530 MailCompose [11289: 262267] [Утвердить] Запрос подключения недействителен без возобновления нашего _serviceSessionConnection. Это ошибка2019-11-01 14: 40: 05.216901 + 0530 MailCompose [11289: 262054] [General] #CompositionServices _serviceViewControllerReady: NSError Domain = _UIViewServiceInterfaceErrorDomain Code = 0
Я полагаю, что странная ошибка отклонения является ошибкой Xошибка. Но как я могу исправить цвет фона и не отображать кнопку «Отправить» на устройстве?
Так я устанавливаю все стили, связанные с панелью навигации.
UINavigationBar.appearance().barTintColor = .mv_primary
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
if #available(iOS 11.0, *) {
UINavigationBar.appearance().largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
}
Демонстрационный проект