新问题,因为最下面是一个TabBar,自然打开二级页面的时候,必须影藏最下面的TabBar,那怎么做呢?
可以在新出来的控制器上,Hide TabBar on Push,这样做能做到影藏最下面的TabBar,但是这样有一个坏处
就是每次都需要点击隐藏,那怎么办?
1、先一个根控制器作为所有控制器的父控制器,然后全部隐藏,这样做可以,但是不推荐
2、方法二:
(1)自定义一个导航栏控制器,继承UINavigationController
(2)重写push控制的方法,
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[super pushViewController:viewController animated:animated];
}
这个方法控制了每次PUSH过去
(3)隐藏每次弹出控制器时候最下面的TabBar
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
viewController.hidesBottomBarWhenPushed = YES;//隐藏TabBar
[super pushViewController:viewController animated:animated];
}
*******************************************************
* 经典之言:以后想改变系统的默认行文,做法就一条:继承 -》 重写
* 将系统方案覆盖
*******************************************************
补充:UINavigationController中一组对应的方法
/**
* 重写这个方法,拦截所有的PUSH操作
*
* @param viewController <#viewController description#>
* @param animated <#animated description#>
*/
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
viewController.hidesBottomBarWhenPushed = YES;
[super pushViewController:viewController animated:animated];
}
/**
* 这个是返回:跟pushViewController是对应的一组方法
*
* @param animated <#animated description#>
*
* @return <#return value description#>
*/
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
return [super popViewControllerAnimated:animated];
}
09-21
09-21
09-21