统一设置导航控制器返回按钮

1.跳转界面发现TabBar条还显示,我们不想让它显示

在push的时候隐藏底部条,push谁的时候需要隐藏底部条,就找到对应控制器去隐藏

注意点:一定要在Push之前设置

settingVc.hidesBottomBarWhenPushed=YES;


2.导航控制器跳转到下一个界面,默认有返回本界面的按钮

问题:系统的返回按钮不能满足我们的需求


3.我们要自定义一个按钮,来实现项目需求


4.如何修改?

由上一个控制器设置backBarButtonItem

当前控制器的leftBarButtonItem来修改


5.发现自定义返回按钮没有在最左边,如何修改?

通过frame不可以?   控件位置系统设定好了,不能修改frame

可以通过内边距来修改

backButton.contentEdgeInsets=UIEdgeInsetsMake(0, -25,0,0);


6.在项目中,很多地方都需要修改返回按钮,如何一次性修改呢?

思考:通过apparence可以修改

通过apparence修改,要先拿到对应的类,返回按钮对应的类UIBarButtonItem会把多有这个类的按钮都修改成返回按钮,rrightBarButtonItem也会变成返回按钮,不可行

那么我们什么时候需要修改返回按钮?   push的时候,那我们拦截push  在里面设置就可以了

在哪里重写push?    在自定义导航控制器里面

注意:重写push方法,一定要调用super push方法     设置返回按钮代码一定要在super push 之前

__func__:方法      获取当前方法在哪个类中调用

我们发现跟控制器也有返回按钮, 这不是我们需要的

我们要判断下是不是跟控制器,跟控制器的话就不设置返回按钮

怎么判断?

通过导航控制器子控制器的个数   个数打印一下就知道怎么设置了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容