【发布时间】:2020-02-06 14:01:32
【问题描述】:
我有一个UINavigationController,默认值为navigationBar.prefersLargeTitles = true。
当我将push 切换到一个新场景时,我将它切换为false,让我们称之为(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 13 如何执行此操作以及 iOS 12 如何执行此操作的附加快照,考虑到 iOS 12 是正确的行为。
iOS 13:
iOS 12:
【问题讨论】:
-
在将细节视图控制器推送到导航堆栈时,您根本不必更改
.prefersLargeTitles,它会自动使用小标题,然后在您返回后返回大标题到根视图控制器,据我所知 -
@henrik-dmg 我不确定以前是不是这样,但如果我这样做了,一切都会变成大标题,我已经尝试过了。
-
largeTitleDisplayMode到 .automatic你应该会得到想要的过渡。 -
@HarryJ 在哪里?
-
在您的 viewDidLoad 或导航控制器中,
navigationController?.navigationItem.largeTitleDisplayMode = .automatic
标签: ios swift uinavigationcontroller uinavigationbar