Iphone 在UITabBarController中,是否可以将一个选项卡置于固定位置,并对其他选项卡进行重新排序?

Iphone 在UITabBarController中,是否可以将一个选项卡置于固定位置,并对其他选项卡进行重新排序?,iphone,uitabbarcontroller,Iphone,Uitabbarcontroller,我希望UITabBarController中的一个选项卡具有固定位置,用户可以根据自己的喜好重新组织其他选项卡。我有UITableViewController>UINavigationController>UITableViewController设置 这可能吗 更新: 下面的代码,在ApplicationIDFinishLaunching中,是我正在使用的代码,它不起作用。我正在尝试获取对SavedTableViewController的引用,我认为这就是问题所在。有什么想法吗 NSMutab

我希望UITabBarController中的一个选项卡具有固定位置,用户可以根据自己的喜好重新组织其他选项卡。我有UITableViewController>UINavigationController>UITableViewController设置

这可能吗

更新:

下面的代码,在ApplicationIDFinishLaunching中,是我正在使用的代码,它不起作用。我正在尝试获取对SavedTableViewController的引用,我认为这就是问题所在。有什么想法吗

NSMutableArray *customizableVCs = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
    for (id controller in tabBarController.customizableViewControllers){
            if ([controller isKindOfClass:[SavedTableViewController class]]){
                NSLog(@"Removing Object");
                [customizableVCs removeObject:controller];
            }
    }
    tabBarController.customizableViewControllers = customizableVCs;
更新2:

这是对我有用的代码。我不得不在下面添加tabBarController到窗口的片段

[window addSubview:tabBarController.view];
    [self setTabOrderIfSaved];

    NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
    [customizableViewControllers removeObject:savedNavigationController];
    tabBarController.customizableViewControllers = customizableViewControllers;

从选项卡栏控制器的中删除与该选项卡对应的视图控制器。假设您希望fixedViewController保持固定:

NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
[customizableViewControllers removeObject:fixedViewController];
tabBarController.customizableViewControllers = customizableViewControllers;

由于
customizeleviewcontrollers
属性更改时会重新初始化
viewControllers
,因此您应该在设置选项卡栏控制器的其余状态后执行此操作。

从选项卡栏控制器中删除与该选项卡对应的视图控制器。假设您希望fixedViewController保持固定:

NSMutableArray *customizableViewControllers = [NSMutableArray arrayWithArray:tabBarController.customizableViewControllers];
[customizableViewControllers removeObject:fixedViewController];
tabBarController.customizableViewControllers = customizableViewControllers;

由于
customizeleviewcontrollers
在更改
viewControllers
属性时会重新初始化,因此您应该在设置选项卡栏控制器的其余状态后执行此操作。

谢谢,我将尝试此操作。可能没有,但是如果选项卡被移动,是否有办法使其保持在选项卡栏中?我不介意viewController在工具栏中移动,我只是不希望它移动到“更多”部分。我的设置是tabBarController>navController>viewController,这有关系吗?@W Dyson不,设置几乎没有关系。但是,您应该注意,
viewController
实际上不在选项卡栏的控制器数组中;您应该从其
CustomizedLeviewController
中删除的是
navController
,即
viewController
的父级,因为这是您实际添加到它的父级。谢谢,我要尝试一下。可能没有,但是如果选项卡被移动,是否有办法使其保持在选项卡栏中?我不介意viewController在工具栏中移动,我只是不希望它移动到“更多”部分。我的设置是tabBarController>navController>viewController,这有关系吗?@W Dyson不,设置几乎没有关系。但是,您应该注意,
viewController
实际上不在选项卡栏的控制器数组中;你应该从它的
自定义控件
中删除的是
导航控制器
,即
视图控制器
,因为它是你实际添加到它的父对象。当你说它不工作时,你到底指的是什么?CustomizeLeviewController的初始状态是否符合您的期望?我认为这一行不起作用。。。如果([controller isKindOfClass:[SavedTableViewController类]]){当你说它不起作用时,你到底指的是什么?CustomizedLeviewController的初始状态是否符合你的预期?我认为这行代码不起作用……如果([controller isKindOfClass:[SavedTableViewController类]])){