我刚刚在我的应用中注意到了这个问题。我根本不需要大标题,所以这是我在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。有人可以向我解释为什么会这样吗?
非常感谢!
这是因为您将第二个控制器上的nav-bar的首选行为设置为较大,并且由于其位于相同的导航堆栈中而得以保留。将此代码添加到您的第一个视图控制器以解决此问题:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}