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

Posted

技术标签:

【中文标题】在 UITabBarController 中重新排序视图控制器,所有这些都在 Storyboard 中定义【英文标题】:Reordering view controllers in a UITabBarController, all defined in a Storyboard 【发布时间】:2012-07-03 08:44:52 【问题描述】:

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

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

讨论

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

我有很多选项卡,所以我希望不必断开所有连接并重新连接,只是为了更改顺序。

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

【问题讨论】:

【参考方案1】:

您可以在情节提要中使用鼠标简单地拖放和使用它们。它仍然适用于 4.5.1

编辑

也许您必须先将情节提要视图切换到“源代码”并返回,然后才能拖动。右键单击故事板文件并选择“打开方式”->“源代码”,然后再次返回“打开方式”->“界面生成器 - ios 故事板”。这应该可以解决问题。

编辑

对我来说不再在 Xcode 4.5.2 中工作了!

编辑

在 Xcode 5 preview 5 中,它又可以工作了。似乎Apple确实在新版本中修复了这个错误

【讨论】:

就是这样!我在其他任何地方单击并拖动,因为我认为我过去尝试过这个并且它当时对我不起作用。很高兴解决了。谢谢大家。 我以前就是这样重新排序的。但它在 Xcode 4.5.1 中不起作用。任何想法?谢谢 我可以确认:在 XCode 4.5.1 中,您不能拖放选项卡,直到您将情节提要作为源代码查看,然后再次作为情节提要查看。嘿,你可以拖放 右键单击故事板文件,选择“打开方式”,然后选择“源代码”,然后返回到普通的故事板(“打开方式”和“iOS 故事板”。这样做启用了拖动和为我放下。 此外,如果缩放不是 100%(或大约),则无法在视图中操作项目【参考方案2】:

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

【讨论】:

突然间我的解决方案不再适合我了。似乎重新排序的唯一方法是删除并重新连接视图控制器。【参考方案3】:

XCode 4.5.1

不是经验性答案,但我遇到了同样的问题..

我将情节提要作为源代码打开,重新排序

然后以 Interface Builder - iOS Storyboard 的形式打开故事板

什么都没变……但是

然后我可以拖放标签

【讨论】:

我做了同样的事情。我作为源代码打开,没有更改任何内容,我再次以 IB 身份打开,瞧!它现在工作。我现在可以拖放了。奇怪。【参考方案4】:

我有同样的问题。 如果我在情节提要中放置了新的视图控制器或新的导航控制器,则拖放在选项卡栏控制器中不起作用。 我关闭并重新打开了 Xcode,并且拖放再次运行良好。

【讨论】:

Ziggy 在你投反对票之前可能是正确的。似乎故事板中某些位置的编辑以某种方式“释放”了拖放的能力 我尝试了其他答案中的“作为源代码打开”的东西,但没有奏效。重启 Xcode 确实如此。【参考方案5】:

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

【讨论】:

这在 4.6.3 中对我很有效。选择标签栏元素后,它会放大它,然后您可以拖放以重新排序。谢谢!【参考方案6】:

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

【讨论】:

【参考方案7】:

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

【讨论】:

以上是关于在 UITabBarController 中重新排序视图控制器,所有这些都在 Storyboard 中定义的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 在系统重新启动后延迟 10 分钟在 Windows 任务计划程序中安排任务?

UITabBarController 每次加载时高度都会降低

我可以通过 TabBarItem 上的自定义事件点击来制作自定义 UITabBarController 吗?

请问在SQL Server中删除记录后能否实现重新排ID?

以最快的方式重新排序字母以按字典顺序排在第一位

在 UITabBarController 中,moreNavigationController 始终为零