根据公司需要 最近在研究 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