无法在导航栏中设置左侧按钮项?

6
我无法在应用程序的导航栏中设置自定义左侧按钮。这是我做的事情:

let profileImage = UIImage(named: "researcher_icon_selected")
    let button = UIBarButtonItem(image: profileImage, style: .plain, target: self, action: #selector(self.viewDidLoad))
    self.navigationItem.setLeftBarButton(button, animated: true)    

我将这段代码放到了一个名为“ExpertsNavigationViewController”的子类化UINavigationController的viewDidLoad方法中。但是,导航栏里什么都没有显示出来!
以下是我尝试过的一些调试实验:
1)我打印了左边的按钮图像尺寸,确实与我设置的自定义图像的尺寸相同。所以实例是存在的,只是没有显示在视图中。
2)我在一个全新的XCode项目中尝试了这个,自定义的按钮项出现了!
3)因为这个原因,我试图在当前项目中创建一个全新的自定义导航控制器,把它设置为初始视图控制器,把上面的代码插入它的viewDidLoad方法中,但是,仍然什么都没有显示出来!
4)我想也许我在App Delegate或者导航控制器的根视图中做了什么改变导致导航栏发生了变化。但没有任何东西!
有什么想法吗?任何关于为什么这个按钮项不会出现的提示都将不胜感激。谢谢。

你尝试在Storyboard中创建UIBarButtonItem了吗? - Rikh
为什么您不在您的baseViewController的viewDidLoad方法上实现这个功能呢? - Reinier Melian
1个回答

14
问题在于您配置了导航控制器的 navigationItem,但需要配置来自导航控制器的根视图控制器的 navigationItem。将您的代码移动到根视图控制器的 viewDidLoad() 中即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接