Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

swift - 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)
    }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

do following action

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...