目前我正在开发一个包含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)
通过属性
从标签栏中取出当前的viewControllersNSArray *viewControllers = myTabBarController.viewControllers;
然后重新排序数组中的viewController,例如:
NSArray *newOrderedViewController = [NSArray arrayWithObjects:viewControllers[2],viewControllers[0],viewControllers[1],viewControllers[3], nil];
最后设置新的有序视图控制器。
myTabBarController.viewControllers = newOrderedViewController;