iOS 13: @objc VC.navigationController (_: willShow: animated :): нарушение потоков: ожидается основной поток - PullRequest
1 голос
/ 22 октября 2019

Я получил сбой Crashlytics of Fabric только для пользователей iOS 13, когда скрыта панель навигации конкретного ViewController.

Я пытался скрыть панель навигации для конкретного ViewController с помощью метода делегирования NavigationController

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
    let hide = (viewController is MyVC)
    navigationController.setNavigationBarHidden(hide, animated: animated)
}

Но он также генерирует сбой при аварийном обращении с именем

Fatal Exception: NSInternalInconsistencyException

threading violation: expected the main thread

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Вы звоните navigationController.setNavigationBarHidden из фоновой темы?

Попробуйте:

DispatchQueue.main.async { [weak self] in
     self?.navigationController?.setNavigationBarHidden(hide, animated: animated)
}
0 голосов
/ 22 октября 2019

Скрыть это в главной теме

Dispatch.main.async {
    navigationController.setNavigationBarHidden(hide, animated: animated)
}
...