重新排序UITabBarController中的视图控制器,所有这些都在Storyboard中定义

时间:2012-07-02 22:38:19

标签: objective-c ios5 uitabbarcontroller uistoryboard

我想在我的Storyboard中更改附加到UITabBarController的视图控制器的顺序,而不会断开所有视图控制器并按所需顺序重新连接它们。

我的问题:这可以通过Storyboard IB UI完成吗?

讨论

我正在寻找一些检查器面板,我可以在viewControllers上为UITabBarController属性提供的视图控制器列表中上下移动项目。

several view controllers linked to tab bar controller

我有很多标签,所以我希望不必断开所有连接并重新连接,只是为了改变顺序。

我甚至尝试在检查器中更改Bar Item上的'tag'值,但在运行时也忽略了该值(我相信它是用于识别目的,而不是用于排序)。

Tag set on Bar Item

7 个答案:

答案 0 :(得分:93)

enter image description here

您只需拖放鼠标即可在故事板中拖放。它仍然适用于4.5.1

修改

也许您首先要将故事板视图切换为“源代码”,然后在拖动之前返回。右键单击故事板文件,然后选择“打开为” - > “源代码”然后再返回“打开为” - > “界面生成器 - iOS故事板”。应该这样做。

修改

不再适用于Xcode 4.5.2!

修改

在Xcode 5预览版5中,它再次运行。似乎Apple确实修复了新版本中的这个错误

enter image description here

答案 1 :(得分:15)

如果拖放不起作用,还有另一种解决方法。在Storyboard中,我刚刚从UITabBarController中删除了所有关系,并以正确的顺序重新连接它们。

答案 2 :(得分:9)

XCode 4.5.1

不是经验回答,但我有同样的问题..

我打开故事板作为源代码,重新排序

然后以Interface Builder - iOS Storyboard

打开故事板

没有任何改变......但是

然后我可以拖放标签

答案 3 :(得分:3)

我有同样的问题。 如果我在故事板中添加了新的视图控制器或新的导航控制器,则拖放功能在标签栏控制器中不起作用。 我关闭并重新打开了Xcode,拖放工作又完成了。

答案 4 :(得分:3)

我在Xcode 4.6.3中遇到过这个问题,但刚刚发现了一种重新排序标签的方法。不确定这是否适用于所有人,但是在故事板左侧的导航菜单中,如果我展开TabBarController,它会显示Tab Bar元素。一旦我点击标签栏,我就可以按照我期望的方式在界面构建器中拖放标签图标。

答案 5 :(得分:1)

您可以通过转到“源代码”视图重新排列并查找场景并编辑源。您可以找到标签栏segue并添加代码。 (右键单击项目导航器中的故事板并选择Open As ...源代码)然后返回Storyboard Nib视图(右键单击项目导航器中的storyboard并选择Open As ... Interface Builder-IOS故事板)

答案 6 :(得分:1)

添加新视图控制器后,Xcode 4.6.2也不允许我重新排序标签。只需单击我的一个源代码文件,然后单击故事板文件就可以了,我可以再次编辑Tab键顺序。