IOS OC Navigation 导航条动态隐藏

根据公司需要  最近在研究 IOS 开发 。

小菜鸟一个。

不会gif 只能单张图发 见谅

效果是这样的 


第一个页面


第二个页面




第三个页面





第四个 TableController 页面



点击里面的按钮 返回到 Navigation 导航条中 第一个页面







根据这个效果可以看到:点击button 跳转页面,导航条 在 1.2.3页面上都正常显示,进入到TableBarController 里面的时候根据需要需要把导航条隐藏掉,并在item1中有一个按钮点击这个按钮要让当前页面跳回到导航栏里面默认的页面(有点绕口),跳回默认页面后导航栏还要显示。


由于自学IOS没几天都是网上搜教程什么的,大神有更好的办法可以指点指点小弟


根据网上查询相关方法:


在TableBarConroller 中 添加代理



@interface TableBarViewController ()<UINavigationControllerDelegate>

@end



在viewDidLoad添加代码:


self.navigationController.delegate = self;


重写方法


// 将要显示控制器

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

    // 判断要显示的控制器是否是自己

    BOOL isShowHomePage = [viewController isKindOfClass:[self class]];

    

    [self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];

}




在Item中 再写一遍:


// 将要显示控制器

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

    // 判断要显示的控制器是否是自己

    BOOL isShowHomePage = [viewController isKindOfClass:[self class]];

    

    [self.navigationController setNavigationBarHidden:isShowHomePage animated:YES];

}



调用的时候代码:


[self navigationController:self.navigationController willShowViewController:nil animated:NO]; //设置动态显示导航条 

    

      [self.parentViewController.navigationController popToRootViewControllerAnimated:YES]; //返回到导航条默认第一个页面


注意:

标红的这个参数 博主测试填任何一个Viewcontroller 都能达到效果  目前不知道这个参数的作用  只好用nil。


到这里已经完全实现了前面说的效果了 

至于第二个导航条是红色 其他是绿色的,这是因为拖了一个NavigationBar 控件设置的颜色 .但是有一个问题就是,如果在代码中把导航条隐藏的话,其他页面都是隐藏的只有设置了NavigationBar控件的页面不回改变.这个问题还没想到如何解决的办法。希望大神们看到的话多指点指点。


效果图就是最前面给出的  运行的效果就是那个.



END













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值