You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在当前VC显示largeTitle,跳转后的VC显示小标题(Storyboard环境)

在Storyboard中实现页面标题大小差异化设置

这个问题是iOS导航栏大标题继承逻辑里的常见场景,在Storyboard里完全可以通过直观的属性设置解决,具体步骤如下:

  • 设置"More"页面为大标题
    选中你的"More"页面对应的ViewController,打开右侧的Attributes Inspector(属性检查器),找到「Navigation Controller」分组,勾选Prefers Large Titles选项。这样该页面的导航栏就会固定显示大标题。

  • 设置跳转后的页面为小标题
    对于每个从"More"页面跳转过去的ViewController,同样打开Attributes Inspector,在「Navigation Controller」分组里,把Prefers Large Titles设置为Never。这会强制这些页面使用小标题,不会继承前一个页面的大标题设置。

备选方案(如果Storyboard设置不生效时)

如果遇到属性设置没起作用的情况,可以在代码里更精准地控制:

  • 在"More"页面的viewDidLoad方法中添加:
    self.navigationItem.largeTitleDisplayMode = .always
    
  • 在跳转后的每个页面的viewDidLoad方法中添加:
    self.navigationItem.largeTitleDisplayMode = .never
    

原理说明:iOS导航栏的大标题状态默认会在导航栈中继承,如果前一个页面开启了大标题,后续页面若未明确关闭,就会沿用大标题样式。所以只要给每个需要差异化的页面单独设置标题显示模式,就能实现你要的效果。

内容的提问来源于stack exchange,提问作者WalterBeiter

火山引擎 最新活动