在StoryBoard中重新排列标签栏控制器的顺序


Answers:


254

在4.5中,添加控制器后保存情节提要,切换到另一个文件,然后返回到情节提要,然后再次拖动选项卡即可。


45
标签拖动!好的,我什至不知道我们可以拖动这些标签。不是很直观,因为无法选择选项卡...
Pierre de LESPINAY

1
如果您厌倦了使用选项卡开关/关闭符号来戳Xcode UI,请查看JannieT的答案。快速简便。
Sixto Saez 2015年

直观,但它在Xcode为我工作,以及7
zeeple

如果您没有看到要拖动的项目,则可能是因为尚未设置图标。我发现直到我设置图标才显示它!
布赖恩

1
不错:)甚至都不知道它可以拖拽
Amr Angry

132

您可以通过在标签栏控制器中拖放图标来重新排列顺序


4
如果使用自定义选项卡,即使Tab Bar Controller场景显示灰色条,该条项仍然存在,您仍然可以拖放以重新排序。当您的所有栏项目均为自定义项目时,这尤其不明显。
杰拉尔德

最简单直接的方法。在Xcode 7.3.1中工作。雨燕2.2
马克Barrasso

可在Xcode 9中使用-尽管图标不可见。
切萨雷


15

我无法使用XCode 4.6(带有任何上述组合)进行拖放。我解决了在“ 源代码 ”模式下打开storybord的问题,找到了tabBarController并重新排列了seque标签。


我在拆分视图控制器中嵌套了一个标签栏控制器,结果,该标签栏控制器的选项卡在情节提要中不可见。编辑情节提要源代码对我有用。谢谢!
Scott Gardner

14

我知道OP正在使用Xcode界面生成器并要求使用图形方式来执行此操作,但是对于使用Xamarin iOS Designer的开发人员,这是我使用的解决方法。

在文本编辑器中或使用Xcode打开.storyboard文件,右键单击Project Navigator中的Storyboard项目,然后选择“ 另存为源代码”。在情节提要XML中找到<tabBarController ...>节点。然后,我在本<connections>节中重新排列顺序的顺序:

<connections>
    <segue destination="274" kind="relationship" relationship="viewControllers" id="286"/>
    <segue id="943" destination="910" kind="relationship" relationship="viewControllers"/>
    <segue destination="147" kind="relationship" relationship="viewControllers" id="159"/>
</connections>

destination=在XML中搜索属性值,以确定segue元素指向哪个视图控制器。


1
很好的解决方案。我有一个庞大的StoryBoard,删除和重新创建序列会花费一些时间
YYamil,2016年

10

只需将选项卡图标拖放到选项卡栏中。

即属于选项卡栏控制器的主选项卡栏。

高温超导

:: EDIT ::所以这似乎不起作用...我确定它曾经使用过。

无论如何,我发现的最简单的方法是删除选项卡,然后按您希望它们显示的顺序将它们重新添加。

希望这可以帮助。


大声笑,刚去测试,我错了。抱歉。之前已经做到了。
一秒

是的,我想我记得即使我不确定拖放操作也确实有效!也许他们在Xcode改变东西..
BigLex

我只是尝试了一下,将Xcode 4.5中的选项卡拖动到了很好的效果
rdelmar 2012年

@rdelmar是作为标签栏应用程序启动项目的,还是将标签栏视图控制器添加到单个视图应用程序的?
BigLex 2012年

5
拖放确实可以,但是如果您在尝试拖放选项卡之前已在情节提要中完成任何操作,它将变得很固执。要修复此问题,请在Xcode中选择其他任何文件,然后返回到情节提要。拖放将再次起作用。无需关闭Xcode或重新添加控制器。
记忆

9

如评论中所述,添加导航控制器后,拖放操作当前不起作用(Xcode 4.5)。但是,添加控制器后重新启动Xcode似乎可以再次进行拖放操作。



7

如果将情节提要板作为“源代码视图”打开,然后将其关闭,然后以IB视图打开,则似乎可以修复该错误。


这对我有用(Xcode 8.1),在源代码视图中打开情节提要后,我终于能够拖动以重新排列。
Undrea '16

7

添加到每个人提供的拖放方法上。我将其发布为答案,以便可以包含图像。在Xcode 7.3上试用

如果使用custom tab bar item,即使Tab Bar Controller场景显示灰色条,仍可以拖放以重新排序,但该条仍在。当您所有的栏项均为自定义项时,这尤其不明显

在此处输入图片说明 描述


4

我使用XCode 5.1开发iOS 7.1,发现以下方法可用于重新排列Tab Bar Controller中的选项卡。

要重新排列选项卡栏控制器中的选项卡,请从选项卡栏控制器删除到子视图控制器的序号。然后按照所需标签的顺序重新绘制序列。要“重绘”,我的意思是您控制从“标签栏”控制器拖到子视图控制器,然后选择“关系关联”(在列表底部)=>视图控制器。


3
真正。另一种方法是将.storyboard编辑为“源代码”,找到segue(它们是<segue>标记),然后重新排列其顺序。
voghDev 2014年

3

您可以确保将Main Storyboard中的Tab Controller Dock选项设置为“ First Responder”,这对我来说已经解决了!


我一直在尝试其中的一些想法,因为无论我现在提出什么项目(新的或旧的),我现在都遇到这个问题。我无法通过“ Tab Controller Dock选项”弄清KayKay的含义。有人有什么想法吗?
LaurelS

3

添加导航控制器后,我遇到了同样的问题。

修复:关闭情节提要(Ctrl + Cmd + W)并执行一个干净的构建文件夹(Option + Cmd + Shift + K)和一个常规的清理(Cmd + Shift + K)。重新打开情节提要,您将可以再次拖动项目。


1

xCode 4.6中也是如此。我最初是按照ios中的开始故事板的教程进行操作的 在切换TabBarController上的项目时,我无法更改顺序。我试图保存它-没有用;但是,一旦我关闭XCode并再次打开-它就可以工作了。



0

我也遵循了针对情节提要的raywenderlich教程,并意识到在添加选项卡控制器之后,我无法通过拖动它来重新排列选项卡。好吧,显然这只是xcode中的一些错误。因此,只需退出xcode,重新启动它,这一次,您将能够拖动选项卡。


0

对我来说,在XCode 7.3.1中拖动都不起作用。重新启动XCode没有帮助。上面提到的解决方案都不适合我。

什么帮助了我:我删除了与第二个项目的关系,并从该项目将ctrl-drag拖到了标签栏控制器,并创建了另一个关系。现在自动排在第二位。


0

删除所有带有Tabbar的ViewController序列。您首先需要先找到viewcontroller,然后再使用tabbar连接另一个viewcontroller。

无需重新启动xcode,也无需清除源代码文件即可更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.