在 StoryBoard 中重新排列选项卡栏控制器顺序
Posted
技术标签:
【中文标题】在 StoryBoard 中重新排列选项卡栏控制器顺序【英文标题】:Rearranging Tab Bar Controller Order in StoryBoard 【发布时间】:2012-09-21 16:16:18 【问题描述】:在我的应用 iPhone 应用中,我有一个标签栏控制器,它与 4 个不同的表视图控制器有 4 个关系。有没有办法以图形方式重新排列 StoryBoard 中的关系顺序?我找不到这样做的方法,我确定我一定错过了什么!
【问题讨论】:
How can I rearrange UITabBarController items using the Storyboard?的可能重复 【参考方案1】:您可以将标签栏项目拖放到您想要的位置,如下图所示
【讨论】:
【参考方案2】:XCODE 10.1:缩放故事板。只需拖动选项卡项目。 (没有班次没有其他)
【讨论】:
你觉得如何尝试这个? ? 太棒了! ?【参考方案3】:删除所有带有标签栏的视图控制器。您首先需要先查看控制器,然后再将另一个视图控制器与标签栏连接。
无需重新启动 xcode,也无需更改明确的源代码文件。
【讨论】:
【参考方案4】:SHIFT + DRAG 适用于 Xcode 10.0
【讨论】:
就这么简单。 简单有效!为我节省了很多时间!谢谢!【参考方案5】:对我来说,拖动在 XCode 7.3.1 中也不起作用。重新启动 XCode 没有帮助。上面提到的解决方案都不适合我。
对我有什么帮助:我删除了与第二个项目的关系,然后按 ctrl 键从该项目拖动到选项卡栏控制器并创建了另一个关系。现在自动排在第二位了。
【讨论】:
【参考方案6】:添加到大家提供的拖放方法。我将此作为答案发布,以便我可以包含图像。在 Xcode 7.3 上试过
如果您使用自定义tab bar item
,您仍然可以拖放以重新排序,即使Tab Bar Controller
场景显示一个灰色条,该条项仍然存在。当您的所有栏项都是自定义项时,这一点尤其不显眼
【讨论】:
【参考方案7】:Control + 拖动 Storyboard 中 TabBarController 中的项目并重新排列到所需位置。
【讨论】:
我认为是 Option + 拖动【参考方案8】:我知道 OP 正在使用 Xcode 界面生成器并要求以图形方式执行此操作,但对于使用 Xamarin ios 设计器的开发人员,这是我使用的一种解决方法。
在文本编辑器或使用 Xcode 中打开 .storyboard 文件,右键单击 Project Navigator 中的故事板项目并选择 Open As Source Code。在情节提要 XML 中找到 <tabBarController ...>
节点。然后我在<connections>
部分重新排列segues 的顺序:
<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>
在 XML 中搜索 destination=
属性值以确定 segue 元素指向的视图控制器。
【讨论】:
很好的解决方案。我有一个巨大的故事板,删除和重新创建转场需要一些时间【参考方案9】:我正在使用 XCode 5.1 开发 iOS 7.1,我发现以下方法适用于重新排列选项卡栏控制器中的选项卡。
要重新排列选项卡栏控制器中的选项卡,请删除从选项卡栏控制器到子视图控制器的 segues。然后按照您想要标签的顺序重新绘制segues。要“重新绘制”,我的意思是您控制从 Tab Bar Controller 拖动到子视图控制器并选择关系 Segue(在列表底部)=> 视图控制器。
【讨论】:
真的。另一种方法是将 .storyboard 编辑为“源代码”,找到 segue(它们是您可以通过拖放标签栏控制器中的图标来重新排列顺序
【讨论】:
如果您使用自定义选项卡,您仍然可以拖放以重新排序,即使Tab Bar Controller
场景显示灰色条,该条项仍然存在。当您的所有栏项都是自定义项时,这一点尤其不显眼。
最直接和方便的方式。适用于 Xcode 7.3.1。斯威夫特 2.2
在 Xcode 9 中工作——尽管图标是不可见的。【参考方案11】:
添加导航控制器后我遇到了同样的问题。
修复:关闭情节提要 (Ctrl+Cmd+W) 并执行清理构建文件夹 (Option+Cmd+Shift+K) 和常规清理 (Cmd+Shift+K)。重新打开情节提要,您将能够再次拖动项目。
【讨论】:
【参考方案12】:您可以确保主情节提要中的 Tab Controller Dock 选项设置为“First Responder”,这为我解决了这个问题!
【讨论】:
我一直在尝试其中的几个想法,因为无论我现在提出什么项目(新的或旧的),我现在都遇到了这个问题。我无法弄清楚 KayKay 的“选项卡控制器底座选项”是什么意思。有人有什么想法吗?【参考方案13】:xCode 4.6 也是如此。我最初是在 beginning storyboards in ios 上关注教程 在切换 TabBarController 上的项目时,我无法更改顺序。我试图保存它 - 没有用;但是,一旦我关闭 XCode 并再次打开 - 它确实有效。
【讨论】:
【参考方案14】:我也在关注故事板的 raywenderlich 教程,并意识到在添加选项卡控制器后,我无法通过拖动来重新排列选项卡。好吧,显然它只是xcode中的一些错误。所以只需退出 xcode,重新启动它,这一次,您将能够拖动选项卡。
【讨论】:
【参考方案15】:如果您将情节提要作为“源代码视图”打开,然后将其关闭并作为 IB 视图打开,它似乎可以修复错误..
【讨论】:
这对我有用(Xcode 8.1),在源代码视图中打开情节提要后,我终于能够拖动重新排列。【参考方案16】:我无法使用 XCode 4.6 拖放(使用任何提到的组合)。 我已经解决了它以“Source Code”模式打开故事板,找到 tabBarController 并重新排列 seque 标签。
【讨论】:
我有一个标签栏控制器嵌套在拆分视图控制器中,因此,标签栏控制器的标签在情节提要中不可见。编辑故事板源代码对我有用。谢谢!【参考方案17】:在 4.5 中添加控制器后保存情节提要,切换到另一个文件,然后返回情节提要,标签拖动应该再次起作用。
【讨论】:
标签拖动!好吧,我什至不知道我们可以拖动标签。不是很直观,因为选项卡不可选择... 如果您厌倦了使用选项卡切换/关闭咒语戳 Xcode UI,请查看 JannieT 的答案。它既快速又简单。 不直观,但它在 Xcode 7 中也适用于我。 如果您没有看到要拖动的项目,可能是因为您还没有设置图标。我发现它直到我设置图标才显示! nice :) 甚至不知道它可以拖动【参考方案18】:如 cmets 中所述,在添加导航控制器后,拖放当前不起作用(Xcode 4.5)。但是,添加控制器后重新启动 Xcode 似乎可以再次进行拖放操作。
【讨论】:
【参考方案19】:只需将标签图标拖放到标签栏中即可。
即属于标签栏控制器的主标签栏。
HTH
::EDIT:: 所以这似乎不起作用......我确定它曾经是。
无论如何,我发现最简单的方法是删除选项卡并按照您希望它们显示的顺序添加它们。
希望这会有所帮助。
【讨论】:
大声笑,刚刚去测试,我错了。对不起。虽然以前做过。一秒…… 是的,我想我记得拖放确实有效,尽管我不确定!也许他们在 Xcode 中改变了一些东西.. 我刚刚试了一下,在Xcode 4.5中拖动标签效果很好 @rdelmar 您是作为一个标签栏应用程序开始您的项目还是将一个标签栏视图控制器添加到单个视图应用程序中? 拖放确实有效,但如果您在尝试拖放标签之前在情节提要中做了任何事情,它就会变得顽固。要修复它,请在 Xcode 中选择任何其他文件,然后返回到您的故事板。拖放将再次起作用。无需关闭 Xcode 或重新添加控制器。以上是关于在 StoryBoard 中重新排列选项卡栏控制器顺序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用新数据重新加载或刷新选项卡栏控制器的选项卡栏中的数据?