导航栏中大标题到小标题的切换不流畅,iOS 13粘性

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

我有一个UINavigationController,默认值为navigationBar.prefersLargeTitles = true

当我将false切换到新场景时,我将其切换为push,通过将其更改为DetailsViewController来称呼它(viewWillDisappear)。

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

现在DetailsViewController中的我正在使用willMove(to parent:)

override func willMove(toParent parent: UIViewController?) {
        navigationController?.navigationBar.prefersLargeTitles = true
}

要过渡回大标题。

考虑到iOS 12是正确的行为,请iOS 13的快照以及iOS 12的快照。

iOS 13

iOS 13

iOS 12

iOS 12

ios swift uinavigationcontroller uinavigationbar
1个回答
0
投票

您在做什么总是错的。您应该将导航栏的prefersLargeTitles设置为true一次,切勿再次触摸它。

更改每个视图控制器对大标题所做的操作的方法是,该视图控制器将自己的navigationItem(在其viewDidLoad中)设置为具有所需的largeTitleDisplayMode。所以如果第一个v.c.具有.always,第二个具有.never,一切都会很顺利。

© www.soinside.com 2019 - 2024. All rights reserved.