最近在忙一款应用,里面有多个tabBar,因为以前只接触过单个tabBar的程序,没遇见过这样的需求,所以说也是各种查资料,各种试验,今天终于弄出来了,可能我的方法有点初级,但是我还是想发出来和大家分享一下。不多说,上代码~
首先,因为存在tabBar,所以他们之间的点击肯定会存在冲突,尤其是首页的tabBar,因为他是最底层的视图。那么,从主页的tabBar跳转到子页面的tabBar的时候,就需要把主页的tabBar和navigation隐藏起来,这样才不会发生冲突。隐藏的方法在网上有很多,但是大部分都是这样的
self.tabBarController.hidesBottomBarWhenPushed = YES;
self.navigationController.hidesBottomBarWhenPushed = YES;
后来我发现这种方法是不合理地,存在很多问题,所以我建议大家使用这种方法
[self.navigationController.navigationBar setHidden:NO];
[self.tabBarController.tabBar setHidden:NO];
在跳转的方法中写上去,就会隐藏掉主页的tabBar但是还不够,因为咱们隐藏掉了navigation,所以不能pus回来,只能采取pop的方法
- (void)Click:(UIButton *)button
{
[self.tabBarController.navigationController popToRootViewControllerAnimated:YES];
}
但是还有一个问题,因为咱们是pop回去的,所以咱们是获取不到主页的tabBar的,如果不作处理,那么,当我们返回到主页之后,navigation和tabBar就不会显示,这里需要我们在主页中加上一个方法
- (void) viewWillAppear:(BOOL)animated
{
[self.navigationController.navigationBar setHidden:NO];
[self.tabBarController.tabBar setHidden:NO];
}
加上这个方法之后,就可以正常的进行tabBar之间的跳转了,当然,以为是主页的tabBar,所以相对来说复杂一些,子页面之间的tabBar跳转没有这么麻烦,有很多方法可以实现,在这里就不多说了~