切换视图控制器并向下滚动后,导航栏标题从小文本切换为大文本?

问题描述 投票:0回答:1

我刚刚在我的应用中注意到了这个问题。我根本不需要大标题,所以这是我在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在我将PreferredLargeTitles设置为true的位置,然后我返回到第一个viewController并向下滚动,由于某种原因,我的第一个viewController中的标题切换为Large。有人可以向我解释为什么会这样吗?

非常感谢!

ios uinavigationcontroller uinavigationitem preferslargetitles
1个回答
0
投票

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

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.navigationBar.prefersLargeTitles = false
}
© www.soinside.com 2019 - 2024. All rights reserved.