实战项目-自定义navigation导航栏控制器实现所有控制器子界面都有返回按钮
前言
如果要给所有的子控制器按钮都添加我们自定义的按钮时,可以不用在每个子控制页面设置导航栏的按钮,我们可以重写UINavigationController的pushViewController方法,让每一个我们push出来的视图都有我们自定义的按钮
tabBar按钮需要由我们重写后的UINavigationController来创建才会生效
重写pushViewController方法
打开软件首次进入的页面也是push出来的,我们不想让首页有这个返回按钮,所以我们要先判断一下当前navigationController中有push出来多少个视图,通过self.childViewControllers.count判断,如果结果等于0,则说明当前页面为控制器首页,我们不需要自定义返回按钮,就跳过添加自定义按钮。
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
// 判断当前navigationController中有多少个视图控制器
if (self.childViewControllers.count > 0) {
// 创建我们自定义的返回按钮
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[U