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

如何在每个ViewController复用侧滑菜单的导航栏按钮

实现全局侧滑菜单的解决方案与新手友好资源

作为iOS新手,想让每个页面都能用同一个侧滑菜单确实有点绕,我给你整理了几个接地气的实现步骤和资源方向,你可以跟着试试:

核心实现思路(一步步来)

1. 封装一个带侧滑菜单的导航控制器

你可以把侧滑菜单的逻辑打包到一个自定义的导航控制器里,这样所有需要侧滑菜单的页面都用这个导航控制器来管理,不用每个页面单独写一遍代码:

class MenuNavController: UINavigationController {
    // 假设你的侧滑菜单ViewController叫SideMenuVC
    private var sideMenu: SideMenuVC?

    override func viewDidLoad() {
        super.viewDidLoad()
        // 初始化你的侧滑菜单
        sideMenu = SideMenuVC()
        // 设置导航栏左侧的菜单按钮(替换掉默认的返回按钮)
        let menuIcon = UIBarButtonItem(image: UIImage(named: "menu-icon"), style: .plain, target: self, action: #selector(toggleMenu))
        navigationBar.topItem?.leftBarButtonItem = menuIcon
    }

    @objc private func toggleMenu() {
        // 这里调用你原来写的侧滑菜单展开/收起逻辑
        sideMenu?.showOrHideMenu()
    }
}

之后你所有的功能页面,都通过这个MenuNavController来跳转,这样每个页面的导航栏左侧都会自动显示菜单图标,点击就能打开侧滑菜单。

2. 统一处理页面跳转逻辑

以后你从侧滑菜单跳转到新页面时,记得用这个自定义导航控制器来push,比如:

// 侧滑菜单里的按钮点击事件
@objc func goToProfileVC() {
    let profileVC = ProfileViewController()
    // 用自定义的导航控制器跳转
    (UIApplication.shared.keyWindow?.rootViewController as? MenuNavController)?.pushViewController(profileVC, animated: true)
}

适合新手的学习资源

  • Apple官方文档:直接在Xcode里点击顶部菜单栏的Help > Show Documentation and API Reference,搜索UINavigationController或者Custom Navigation Bar,官方文档里有最基础的导航控制器用法,还有自定义导航栏的详细步骤,都是权威内容,新手也能看懂。
  • Xcode自带示例项目:打开Xcode后,在欢迎界面选择Open a project or file,然后搜索Side Menu,能找到官方做的侧滑菜单示例项目,直接运行看效果,对着代码一步步拆解学习,比看文字教程更直观。
  • 国内博客教程:去掘金、简书这类平台搜索“iOS 全局侧滑菜单 新手教程”,很多开发者会分享自己的实现过程,图文并茂,步骤非常详细,还有针对新手的坑点提示。
  • 视频教程:B站上搜“iOS 侧滑菜单 全局实现”,很多UP主会从创建项目开始,一步步演示到完成全局侧滑菜单,跟着操作一遍,很快就能上手。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:45:24