项目中遇到一个问题 self.navigationItem.leftBarButtonItem= leftBarButtonItem; 导航栏按钮加不上去,当时但觉很奇怪,很常用的一个功能,怎么可能加不上去
后来找了好久发现原来是View的层级关系的问题。
往常的情况是App最外层是UITabbarcontroller嵌套UINavigationcontroller,viewcontroller使用self.navigationItem.leftBarButtonItem= leftBarButtonItem等设置导航栏的功能也都顺理成章的使用。
后来我们的项目换成了UINavigationcontroller嵌套Tabbarcontroller
我们最外层看到的导航栏实际上是Tabbarcontroller.navataionitem的导航栏,因此设置self不会成功一般情况下 这样写就对了
self.tabbarcontroller.navigationItem.leftBarButtonItem= leftBarButtonItem;
刚巧我们的tabbar是自定义的,viewcontrller并没有这么一个tabbar属性,所以又要想办法
解决办法是模仿苹果的写法,扩展ViewController,添加property属性,从viewcontroller 的super开始找,直到找到这个tabbarcontroller