prefersLargeTitles不与程序设计工作

问题描述 投票:5回答:4

我试图以编程方式添加表格视图,但大标题不显示。

这里是我的代码:

self.view.addSubview(module.tableView)

module.view.translatesAutoresizingMaskIntoConstraints = false

if #available(iOS 11.0, *) {
    NSLayoutConstraint.activate([
        module.view.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor, constant: 0),
        module.view.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor, constant: 0),
        module.view.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor, constant: 0),
        module.view.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: 0)
    ])
}

注意:在视图控制器启用大标题

if #available(iOS 11.0, *) {
    navigationController?.navigationBar.prefersLargeTitles = true
    navigationItem.largeTitleDisplayMode = .always
}

也许这是很重要的:我想补充一个表作为一个子视图控制器。我的孩子控制器为一个UITableViewController。如果我添加子视图viewDidLoad()大标题显示,但不会滚动。

这里是我加入我的孩子模块link to file。详细代码,你可以在here方法问题或addChild(module:)看到。

让我知道如何解决这个bug吧。

ios swift xcode ios11 swift4
4个回答
1
投票

在那里你配置表视图允许在视图控制器的viewDidLoad方法大标题。

if #available(iOS 11, *) {
    self.navigationController?.navigationBar.prefersLargeTitles = true
}

1
投票

我使用的纲领性布局,碰到了类似的问题。我发现这里的解决方案:https://stackoverflow.com/a/46692583/131378。在viewDidLoad()我不得不关闭并重新切换largeTitleDisplayMode。这是正确的组合得到了大标题与滚动工作:

self.navigationItem.largeTitleDisplayMode = .never
self.navigationItem.largeTitleDisplayMode = .always

0
投票

更新您的iOS Deployment Target11.0或更高。目前,它在10.3。这就是为什么你没有看到大标题。


0
投票

你必须点击导航栏的主导航控制器,然后选择“倾向于大标题”在你的属性检查器。 enter image description here

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