在我的tabBar应用程序中,我在视图顶部有一个导航栏。但是我有超过4个tabBars,因此TableView可以选择其他选项。
如果最终用户决定更改订单,是否有隐藏前4个视图的导航?
我有点想这样的事情,但是这段代码中的if语句不对。
if([[self.tabBarController viewControllers] objectAtIndex:5])
{
[_navBar setHidden:YES];
}
else {
[_navBar setHidden:NO];
}
答案 0 :(得分:0)
如果您担心用户重新订购标签,您可能会接受的另一个选择是创建自定义的MoreViewController(并且没有重新排序)。请参阅this SO回答。
答案 1 :(得分:0)
更改TabBar中视图的顺序后,您应该隐藏这样的导航栏
[self.tabBarController.viewControllers
enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop)
{
if (index < 4)
{
UIViewController *vc = (UIViewController *)obj;
[vc.navigationController setNavigationBarHidden:YES];
}
}];
答案 2 :(得分:0)
您应该在自定义对象中实现-tabBarController:didEndCustomizingViewControllers:changed:UITabBarControllerDelegate协议的方法,并将其设置为UITabBarController的委托。在此处阅读:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITabBarControllerDelegate