【发布时间】:2012-11-05 05:20:01
【问题描述】:
我在一个故事板中有几个UIViewControllers。
现在我想将一些UIViewControllers 移动到另一个故事板。有可能吗?
【问题讨论】:
标签: ios xcode uiviewcontroller storyboard
我在一个故事板中有几个UIViewControllers。
现在我想将一些UIViewControllers 移动到另一个故事板。有可能吗?
【问题讨论】:
标签: ios xcode uiviewcontroller storyboard
是的,这是可能的。
注意:“复制后 IBOutlets 保持原样(在 Xcode 6.3.2 上验证)。”
【讨论】:
可以复制,但您必须在一个项目中同时打开两个故事板,然后复制和粘贴。
【讨论】:
在 Xcode 8 中,如果您特别想将视图控制器移动到另一个故事板,只需通过 Cmd 选择要移动的视图控制器并单击视图控制器。保持选中状态,转到 Editor 选项卡并选择 Refactor to Storyboard。它会询问您新故事板文件的名称,然后按 Enter。
将创建一个新的故事板文件,其中包含您选择的视图控制器。在 Main.storyboard 中,您将看到一个 Storyboard Reference 对象代替了该视图控制器,它是您对刚刚制作的新故事板的引用。
【讨论】:
复制粘贴(Command+C、Command+V)可以正常工作,但请记住解决插座连接,因为 Xcode 似乎保留了原始连接:关闭/重新打开项目,删除错误并重新建立丢失的连接。
【讨论】:
可以复制/粘贴,但只有在使用 Xcode 的助手编辑器并排打开两个 Storyboard 时才有效。
【讨论】:
如果您使用 Cut-n-Paste 失败,有一个解决方法。如果正在粘贴的文件中现在有 ViewController,则粘贴将失败。这使得无法选择故事板进行粘贴。 XCode 将拒绝粘贴。因此,您需要先将一个空视图控制器从库中拖入情节提要中。然后在情节提要中选择这个 viewController,然后粘贴就可以工作了。完成粘贴后,您可以删除虚拟视图控制器。你不会再需要它了。
【讨论】:
界面元素可以通过复制/粘贴在 Xib 和 Storyboard 文件之间移动。
这原本不适合我。我试图将 UICollectionViewCell 从专用 Xib 复制到我们的 Main Storyboard。单元格不会复制到情节提要中。
解决方案是选择情节提要中的特定父元素。 UICollectionViewCell 可以作为 UICollectionView 的子项粘贴到情节提要中,否则无法粘贴。
如果您在粘贴特定项目时遇到问题,请务必在尝试粘贴之前仔细检查您是否选择了有效的父元素。
【讨论】:
我遇到了类似的情况,在我的主情节提要中,我的场景太多,需要重构。 我一开始的想法是标记几个并按照许多人的建议进行复制粘贴。但是,我担心情节提要与视图控制器代码的连接的任何解决方案。 经过大量搜索,我发现自 iOS 9 以来,有一个新功能可用于“重构为 Storuboard”。您可以在源故事板中标记多个场景,并且可以从编辑器菜单中选择该选项。然后从您的旧情节提要中提取所有选定的场景,创建一个新情节提要以及旧/主情节提要中的链接。 有用的教程是: https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226 https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards
我希望这个新的官方故事板重构功能可以为这类问题提供更好的解决方案。
【讨论】:
遇到类似的情况,我需要与 2 个 StoryBoard 控制器共享一个 ViewController 类。
显然,解决方案很简单:
希望这足够清楚和有帮助
【讨论】:
我觉得有可能……
UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
UIViewController *theTabBar = [secondStoryBoard instantiateViewControllerWithIdentifier:@"myTabBar"];
[self.navigationController pushViewController:theTabBar animated:YES];
【讨论】: