Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 13: threading violation: expected the main thread

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)
    }
like image 782
Nikunj Avatar asked Oct 11 '19 05:10

Nikunj


1 Answers

do following action

  DispatchQueue.main.async {
    self.navigationController?.isNavigationBarHidden = false
  }
like image 123
Saeed Avatar answered Oct 04 '22 15:10

Saeed