[英]Swift How can I keep only the first page with a large title?
The large title of navigation item comes out when the app just describes execution.当应用程序仅描述执行时,导航项的大标题就会出现。 However, when I move to another page and come back, that mode is turned off.
但是,当我移至另一页并返回时,该模式已关闭。 Create a viewDidLoad for each page as follows: What's the problem?
为每个页面创建一个viewDidLoad,如下:有什么问题?
class CollectionViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
}
next page下一页
class AssetCollectionViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.largeTitleDisplayMode = .never
}
Possibly adding code didn't work.可能添加代码不起作用。
override func viewDidDisappear(_ animated: Bool) {
self.navigationItem.largeTitleDisplayMode = .always
}
Change titleDisplay mode in viewWillppear function as it will always execute更改viewWill中的标题显示模式将显示 function,因为它将始终执行
class CollectionViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
}
How about doing all the implementation in your CollectionViewController like so:在你的 CollectionViewController 中做所有的实现怎么样:
override func viewWillDisappear(_ animated: Bool) {
navigationController?.navigationBar.prefersLargeTitles = false
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
}
When you're setting navigationItem.largeTitleDisplayMode
in viewDidDisappear(_:)
, you're doing it for the current controller's navigationItem
.当您在
viewDidDisappear(_:)
中设置navigationItem.largeTitleDisplayMode
时,您正在为当前控制器的navigationItem
执行此操作。
I suggest you to create UINavigationController
subclass with:我建议您使用以下命令创建
UINavigationController
子类:
override func viewDidLoad() {
super.viewDidLoad()
navigationBar.prefersLargeTitles = true
}
Then set navigationItem.largeTitleDisplayMode
to .never
in controllers, where you don't want large title.然后在不需要大标题的控制器中将
navigationItem.largeTitleDisplayMode
设置为.never
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.