You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过代码添加的导航栏项目和栏按钮无法正常显示如何解决

导航栏元素不显示排查方案
  • 确认视图控制器嵌套在UINavigationController中

navigationItem配置仅对处于导航控制器管理栈内的视图控制器生效,若直接将当前控制器设为根控制器,所有导航栏配置都不会生效。正确的根控制器设置示例:

// AppDelegate 或 SceneDelegate 中根控制器配置代码
let loginVC = LoginViewController()
window?.rootViewController = UINavigationController(rootViewController: loginVC)
  • 修正系统图标加载方式

你使用的arrowshape.turn.up.left是iOS13+提供的SF系统图标,不能用UIImage(named:)加载,该方法只会读取项目本地资源包的图片,加载系统图标需调用专用构造方法,否则返回nil会导致按钮无内容不可见:
修改对应代码为:

navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(systemName: "arrowshape.turn.up.left"), style: .plain, target: self, action: #selector(handleSignOut))
  • 排查配置覆盖问题

检查viewWillAppear、viewDidAppear等晚于viewDidLoad执行的生命周期方法,是否存在重新赋值navigationItem.leftBarButtonItem、修改title或者隐藏导航栏的代码。

  • 强制显示导航栏

可在configureViewComponents方法末尾增加代码,确保导航栏处于显示状态:

navigationController?.setNavigationBarHidden(false, animated: false)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:54:03