切换 ViewControllers 并向下滚动后,导航栏标题从小文本切换到大文本?

Navigation Bar Title switches from Small to Large text after switching ViewControllers and scrolling down?

我刚刚在我的应用程序中发现了这个问题。我根本不想有大标题,所以这是我在 viewDidLoad()...

中调用的代码
//MARK: - Navigation Bar Setup
    func navConAcc() {
        let addBarButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addWorkout))
        navigationItem.rightBarButtonItem = addBarButton
        navigationController!.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor(red: 0.4784, green: 0.0863, blue: 0, alpha: 1.0)]
        navigationController?.navigationBar.prefersLargeTitles = false
        navigationController?.navigationItem.largeTitleDisplayMode = .never
        navigationItem.title = "My workouts"
    }

如您所见,我将大标题设置为 false,并将显示模式设置为 .never,因此当此 viewController 首次加载时,标题没有任何问题大小,但是如果我转到下一个 viewController,我将 prefersLargeTitles 设置为 true,然后我随后返回到第一个 viewController 并向下滚动,我的第一个 viewController 出于某种原因切换到 Large。有人可以向我解释为什么会这样吗?

这是因为您将第二个控制器上的导航栏的首选行为设置为较大,并且由于它位于同一导航堆栈中而得以保留。将此代码添加到您的第一个视图控制器以解决此问题:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.navigationBar.prefersLargeTitles = false
}