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

如何编程修改Navigation controller返回按钮的颜色与标题

图片说明

修改返回按钮颜色

返回按钮的颜色由导航栏的tintColor属性控制,支持全局统一配置和单页面单独配置:

  • 全局配置(所有导航页生效):在App启动阶段(比如AppDelegate的didFinishLaunchingWithOptions方法里)设置导航栏全局样式即可:
// 替换为你需要的UIColor即可,示例为设置成红色
UINavigationBar.appearance().tintColor = .red
  • 单页面配置(仅当前LoginController页面生效):在LoginController的viewDidLoad生命周期方法中修改当前导航栏属性:
override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.navigationBar.tintColor = .systemBlue
}

修改返回按钮标题

注意:系统默认返回按钮的标题由push跳转的源页面控制,不是当前被push的页面控制,有两种常用实现方式:

  1. 源页面配置(保留系统原生返回样式、侧滑返回手势)
    在跳转到LoginController的上一个页面的viewDidLoad中,提前设置返回按钮项:
    override func viewDidLoad() {
        super.viewDidLoad()
        let backItem = UIBarButtonItem()
        backItem.title = "自定义返回文字" // 如果不需要文字只留箭头,设为""即可
        navigationItem.backBarButtonItem = backItem
    }
    
  2. 当前页面自定义返回按钮(无需修改源页面代码,灵活度更高)
    直接在LoginController中替换系统自带的左侧导航按钮,自己实现返回逻辑:
    override func viewDidLoad() {
        super.viewDidLoad()
        let backBtn = UIBarButtonItem(
            title: "返回登录",
            style: .plain,
            target: self,
            action: #selector(popToPrevious)
        )
        backBtn.tintColor = .orange // 这里也可以单独给自定义按钮设置颜色
        navigationItem.leftBarButtonItem = backBtn
    }
    
    @objc private func popToPrevious() {
        navigationController?.popViewController(animated: true)
    }
    

注意:用自定义leftBarButtonItem的方式默认会失效系统侧滑返回手势,如果需要保留侧滑,可以给导航控制器的interactivePopGestureRecognizer.delegate做适配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:30:05