有一个Xcode7 beta
名为 的新控件Storyboard Reference
。下面是它的图像。
它的描述为
为外部故事板中的视图控制器提供占位符。连接到此占位符的 Segue 将在运行时实例化引用的视图控制器。
所以问题是
- 我们应该在什么情况下使用它?
- 这是否用于通过 segue 连接两个故事板的视图控制器?
- 这种方法是否用于以编程方式替换另一个故事板的 VC?
- 它可以在较旧的 iOS 版本(iOS 9 之前)上运行吗?
更新(2016 年 1 月 6 日):我只想快速提一下,使用 Storyboard 引用非常简单,它将帮助您以更干净和可维护的方式使用 Storyboard。它的一个很好的用例是UITabBarController
具有多个选项卡。只需为每个选项卡创建一个故事板,并Main.Storyboard
使用故事板引用在指向这些单独故事板的链接中。用法非常简单:创建 Storyboard 引用后,您只需为其提供要链接到的单个 Storyboard的文件名,并在该单个 Storyboard 中设置初始视图控制器。而已!:)
下面是我对@YogeshSuthar 的问题给出的原始答案。
这可以用于您在应用程序中使用多个故事板的情况。到目前为止,您必须以编程方式从其他情节提要中实例化视图控制器,现在您似乎可以使用此引用并在情节提要中创建您的 segue,就像使用来自同一情节提要的视图控制器一样
是的,您将当前故事板中的一个视图控制器与另一个故事板中的另一个视图控制器连接起来,您可以在这两者之间创建一个segue
是的,这可以用来替换以前用于以编程方式从其他情节提要中实例化视图控制器的代码
[UPDATE thx to @AlexBasson] Storyboard 引用可以部署到iOS 8、OS X 10.10和watchOS 1。
那么其他答案对我的问题是正确的。
我想发布Storyboard Reference
用于通过 segue 从另一个故事板打开视图控制器的用法,而无需编写任何代码。:)
NewStoryboard
)。NewStoryboard
.Storyboard ID
(我已经给了newVC
)。Storyboard Reference
控件。Storyboard Reference
控件并选择Attributes Inspector
。NewStoryboard
。newVC
(您在NewStoryboard
情节提要中使用的)。Storyboard Reference
通过 ViewController 的 segue连接它。现在它将通过 segue 打开这个 VC 而无需编写代码。:)看起来可能不是:/
故事板引用要求应用程序至少面向 iOS 9.0、OS X 10.11 或 WatchKit 2.0 for watchOS。
- 它可以在较旧的 iOS 版本(iOS 9 之前)上运行吗?
这是一个解决方法(由 Xcode 8 和 iOS 8.2 验证):
在Xcode Releases的最后一个iOS 开发人员库文档中也添加了此注释(当前版本:Xcode 7.2.1):
Storyboard References 现在可以部署到 iOS 8、OS X 10.10 和 watchOS 1。
这意味着好消息,但请记住:
在 iOS 9.0 之前,Storyboard References 不能是关系 segues 的目的地
所以如果你知道这两个要点,那么你很高兴:)
刚刚在带有 iOS 8 的 Xcode 7 中测试了故事板参考,但它失败了。
Illegal Configuration: Storyboard References cannot be the destinations of
relationship segues prior to iOS 9.0
当我们有一个包含太多屏幕和模块的大型应用程序时,将情节提要按模块划分为多个情节提要是一个很好且方便的选择。在使用多个storyboard时,如果需要在不同storyboard的viewController之间连接segue,可以使用这个控件。如果您正在使用此控件,则无需编写诸如 instantiateViewController 和 pushViewController 之类的代码。您只需连接 segue,执行 segue,如果需要,可以使用 prepareForSegue。
让我们讨论您的所有问题:
我们应该在什么情况下使用它?-我想你已经在上面找到了答案。
这是否用于通过 segue 连接两个故事板的视图控制器?-是的
这种方法是否用于以编程方式替换另一个故事板的 VC?-使用此控件时与编码无关
它可以在较旧的 iOS 版本(iOS 9 之前)上运行吗?-它可能有效,我还没有尝试过