Navigation Controller添加左侧栏按钮无效,求助排查解决
我来帮你搞定这个问题!你遇到的左侧栏按钮没显示的情况,核心原因是你错误地操作了NavigationController的NavigationItem,而不是当前ViewController自己的NavigationItem。
问题根源
NavigationController本身的NavigationItem一般是给全局导航配置用的,每个页面的导航栏按钮、标题等元素,应该绑定到当前ViewController的this.NavigationItem上,而不是控制器容器的NavigationItem。
修正后的代码
把代码里的this.NavigationController.NavigationItem替换成this.NavigationItem,就能正常显示左侧按钮了:
this.NavigationController.NavigationBar.TintColor = UIColor.White; this.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGBA(204,165,99,255); // 改为当前ViewController的NavigationItem this.NavigationItem.SetLeftBarButtonItem( new UIBarButtonItem(UIImage.FromFile("hamburger_menu") , UIBarButtonItemStyle.Plain , (sender, args) => { // 按钮点击逻辑 }) , true); this.Title = "Dashboard";
额外排查点
如果修改后还是不显示,可以检查这几点:
- 确认图片文件名完全匹配(iOS系统文件名区分大小写,比如
Hamburger_Menu和hamburger_menu是不同的) - 打开Assets.xcassets,选中
hamburger_menu图片,在右侧属性面板里把Render As设置为Original Image,避免图片被导航栏的tintColor覆盖颜色 - 确保当前ViewController已经正确嵌入到NavigationController中,
this.NavigationController不为null(可以加个断点或者打印日志确认)
内容的提问来源于stack exchange,提问作者pankaj
相关产品推荐
相关产品推荐

