更改UITabBarController中选项卡的顺序

时间:2012-09-17 11:51:25

标签: ios xcode4 uitabbarcontroller

目前我正在开发一个包含3个选项卡的选项卡式应用程序,我想知道是否有可能更改选项卡的顺序,即将第三个选项卡放在第一个选项卡的位置?

3 个答案:

答案 0 :(得分:4)

只需在故事板中更改它即可。对于像这样小的东西,很容易修改XML。在您选择的编辑器中打开Storyboard文件并搜索“tabBarController”。你会发现这样的东西:

<connections> <segue destination="XmF-SX-cO9" kind="relationship" relationship="viewControllers" id="CZB-Ec-d55"/> <segue destination="mCx-nD-74Q" kind="relationship" relationship="viewControllers" id="3PE-EG-9Vs"/> <segue destination="bxy-1d-KHG" kind="relationship" relationship="viewControllers" id="OP9-xt-ZMo"/> <segue destination="JqF-xj-sCJ" kind="relationship" relationship="viewControllers" id="cHB-MZ-3bs"/> </connections>

表示标签的当前顺序。如果要切换第一个和第二个选项卡,只需在此列表中切换它们的位置即可。就这么简单。

答案 1 :(得分:3)

试试这个:

UITabBarController *tabController;
NSArray *controllers = tabController.viewControllers;
NSArray *reorderedControllers = [controllers sortedArrayUsingComparator:yourComparator];
[tabController setViewControllers:reorderedControllers];

答案 2 :(得分:0)

通过属性

从标签栏中取出当前的viewControllers
NSArray *viewControllers = myTabBarController.viewControllers;

然后重新排序数组中的viewController,例如:

NSArray *newOrderedViewController = [NSArray arrayWithObjects:viewControllers[2],viewControllers[0],viewControllers[1],viewControllers[3], nil];

最后设置新的有序视图控制器。

myTabBarController.viewControllers = newOrderedViewController;