navigationcontroller嵌套tabbarcontroller引发的问题

项目中遇到一个问题 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

navigationcontroller嵌套tabbarcontroller引发的问题_第1张图片


navigationcontroller嵌套tabbarcontroller引发的问题_第2张图片

你可能感兴趣的:(navigationcontroller嵌套tabbarcontroller引发的问题)