iOS 13: threading violation: expected the main thread

烈酒焚心 提交于 2019-12-19 09:42:22

问题


The app is being crashed when trying to hide the navigation bar for a viewcontroller only for iOS 13 users.

  • I got the crash on Crashlytics of Fabric which titled as below,

Fatal Exception: NSInternalInconsistencyException

threading violation: expected the main thread

  • The app is being crashed on this line of viewWillAppear method,
    self.navigationController?.isNavigationBarHidden = true
  • To hide the navigation bar on the viewWillAppear method of UIViewController, I am using below code,
    override func viewWillAppear(_ animated: Bool) {
        self.navigationController?.isNavigationBarHidden = true
        super.viewWillAppear(animated)
    }
  • To show the navigation bar on the viewWillDisappear method of UIViewController, I am using below code,
    override func viewWillDisappear(_ animated: Bool) {
        self.navigationController?.isNavigationBarHidden = false
        super.viewWillDisappear(animated)
    }

回答1:


do following action

  DispatchQueue.main.async {
    self.navigationController?.isNavigationBarHidden = false
  }


来源:https://stackoverflow.com/questions/58335061/ios-13-threading-violation-expected-the-main-thread

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!