通过滚动从表格视图返回时,主导航栏变小。谁能告诉我实现大标题的正确方法?
视频样本 https://i.imgur.com/zoATpja.gif
ViewController
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.navigationController?.navigationBar.prefersLargeTitles = true
}
DestinationViewController
let reuseIdentifier = "cell"
let array = ["Test 1","Test 2","Test 3"]
override func viewDidLoad() {
self.title = "TableView"
self.navigationItem.largeTitleDisplayMode = .never
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: reuseIdentifier)
self.tableView.delegate = self
self.tableView.dataSource = self
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier, for: indexPath)
cell.textLabel?.text = array[indexPath.row]
return cell
}
答案 0 :(得分:1)
这对您有帮助!
从viewDidLoad()调用此方法
/**
In Swift 4.2
*/
func setupNavBar() {
self.title = "titleName"
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationItem.largeTitleDisplayMode = .always
}
在DestinationView Controller中,将这两行放在ViewDidLoad方法中。
self.navigationItem.largeTitleDisplayMode = .never
self.navigationController?.navigationBar.prefersLargeTitles = false
答案 1 :(得分:0)
您需要致电
self.navigationController?.navigationBar.prefersLargeTitles = true
还有这个
self.navigationItem.largeTitleDisplayMode = .never
在viewWillAppear()
答案 2 :(得分:0)
在修正问题之后,我得出的结论是:
将大标题与UIViewController
结合使用时,这可能是一个错误。
然后我在您的一条评论中找到了: 但是iPhone设置和App Store具有类似的动画...
但事实是,导航发生时,两个参考应用程序都将UITableViewController
的视图控制器的源使用segue
子类。因此,我尝试了类似的方法,并且是我的怀疑是正确的。您可以找到reference project here上没有动画问题的地方。
因此,您可能希望将源视图控制器更改为UITableViewController
的子类,直到对此问题有正式修复为止。