导航栏在推送到新视图控制器时会缩小

Posted

技术标签:

【中文标题】导航栏在推送到新视图控制器时会缩小【英文标题】:Navigation bar shrinks when pushed to the new view controller 【发布时间】:2020-12-28 11:30:34 【问题描述】:

我有一个详细视图控制器,它有 tableView 显示用户信息。但是当我从另一个视图控制器推送到详细视图控制器时,导航栏总是缩小,即使我强制成为大标题而不是在其他任何地方设置它。如果我向下滚动,它会显示为一个大标题。你以前遇到过这样的问题吗?

 override func viewWillAppear(_ animated: Bool) 
     super.viewWillAppear(animated)

     navigationItem.largeTitleDisplayMode = .always
     navigationController?.navigationBar.prefersLargeTitles = true
 

注意:版本,ios 14.2

【问题讨论】:

【参考方案1】:

你需要设置外观。

 let navBarAppearance = UINavigationBarAppearance()
    navBarAppearance.configureWithOpaqueBackground()
    navBarAppearance.titleTextAttributes = [.foregroundColor: UIColor(named: "menuNavBarTitle") ?? .red]
    navBarAppearance.largeTitleTextAttributes = [.foregroundColor: UIColor(named: "menuNavBarTitle") ?? .red]
    navBarAppearance.backgroundColor = .systemBackground
    navigationController?.navigationBar.standardAppearance = navBarAppearance
    navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance
    self.navigationController?.navigationBar.prefersLargeTitles = true

【讨论】:

以上是关于导航栏在推送到新视图控制器时会缩小的主要内容,如果未能解决你的问题,请参考以下文章

导航栏在动画期间不反映新的文本属性到前一个视图控制器

窗口缩小时如何使导航栏缩小?

导航栏在第二次和后续出现时隐藏在视图控制器上

导航栏在 iPhone XS Max swift 上关闭视图控制器上的视图

导航栏在搜索结果表视图中消失

为啥我的导航栏在 Xcode 中消失了?