0

在我的 tabBar 应用程序中,我在视图顶部有一个导航栏。但是,我有超过 4 个 tabBars,因此出现了可以选择其他选项卡的 TableView。

如果最终用户决定更改订单,是否有隐藏前 4 个视图的导航?

我有点像这样想,但是这段代码中的 if 语句是不正确的。

    if([[self.tabBarController viewControllers] objectAtIndex:5])
{
    [_navBar setHidden:YES];
}
else {
    [_navBar setHidden:NO];
}
4

3 回答 3

0

您应该在自定义对象中实现 UITabBarControllerDelegate 协议的 –tabBarController:didEndCustomizingViewControllers:changed: 方法,并将其设置为 UITabBarController 的委托。在这里阅读:http: //developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITabBarControllerDelegate

于 2012-06-12T11:00:46.970 回答
0

更改 TabBar 中视图的顺序后,您应该像这样隐藏导航栏

[self.tabBarController.viewControllers 
   enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop)
{
    if (index < 4)
    {
       UIViewController *vc = (UIViewController *)obj;
       [vc.navigationController setNavigationBarHidden:YES];
    }

}];
于 2012-06-12T10:42:22.197 回答
0

如果您担心用户重新排序您的选项卡,您可能会考虑的另一个选择是创建一个自定义的 MoreViewController(并且没有重新排序)。请参阅SO 答案。

于 2012-06-12T10:39:10.017 回答