Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS-第五和第六个选项卡选项_Ios_Uinavigationcontroller_Uitabbarcontroller - Fatal编程技术网

IOS-第五和第六个选项卡选项

IOS-第五和第六个选项卡选项,ios,uinavigationcontroller,uitabbarcontroller,Ios,Uinavigationcontroller,Uitabbarcontroller,在我的tabBar应用程序中,我在视图顶部有一个导航栏。但是,我有4个以上的选项卡栏,因此出现了带有选择其他选项卡栏选项的TableView 如果最终用户决定更改其顺序,是否仍然可以隐藏前4个视图的导航 我是这样想的,但是代码中的if语句是不正确的 if([[self.tabBarController viewControllers] objectAtIndex:5]) { [_navBar setHidden:YES]; } else { [_navBar setHid

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

如果最终用户决定更改其顺序,是否仍然可以隐藏前4个视图的导航

我是这样想的,但是代码中的if语句是不正确的

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

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

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

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

}];
[self.tabBarController.viewControllers
enumerateObjectsUsingBlock:^(id对象,整数索引,布尔*停止)
{
如果(指数<4)
{
UIViewController*vc=(UIViewController*)对象;
[vc.navigationController设置NavigationBarHidden:是];
}
}];

您应该在自定义对象中实现UITabBarController:DiEndCustomingViewController:changed:UITabBarController协议的方法,并将其设置为UITabBarController的委托。在这里阅读:

好吧,我会研究一下——在这种情况下,重新订购并不重要,但如果最终用户有选择的话,会更好。