如何在每个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
相关产品推荐
相关产品推荐

