在 Swift 中连接多个故事板

Posted

技术标签:

【中文标题】在 Swift 中连接多个故事板【英文标题】:Connecting Multiple Storyboards in Swift 【发布时间】:2015-03-20 23:00:57 【问题描述】:

我正在使用 Swift 构建 ios 应用程序,并被建议为每个功能使用故事板,因为每个功能将有大约 10 个视图。从主情节提要开始,任何人都可以提供有关如何使用 Swift 在情节提要之间转换的建议吗?或者,如果我想避免 50+ 视图主故事板的混淆,还有什么比使用多个故事板更好的办法吗?

这是最终的工作:

let secondVC:UIViewController = UIStoryboard(name: "SecondStoryboard", bundle:nil).instantiateViewControllerWithIdentifier("numberTwo") as UIViewController

@IBAction func changeStoryBoardButtonClicked(sender: AnyObject) 
        presentViewController(secondVC, animated: false, completion: nil)

【问题讨论】:

【参考方案1】:

当您的应用需要移动到不同故事板中的新控制器时,您必须实例化新故事板,然后在此处实例化初始视图控制器。

let sb = UIStoryboard(name: "SomeStoryboardName", bundle: nil)
let vc2 = sb.instantiateInitialViewController() as UIViewController // or whatever the class is of that initial vc

【讨论】:

首先,非常感谢。我试过: let secondSB : UIStoryboard = UIStoryboard(name: "SecondStoryboard.storyboard", bundle: nil) let secondVC = secondSB!.instantiateInitialViewController() as UIViewController @IBAction func changeStoryBoardButtonClicked(sender: AnyObject) presentViewController(secondVC, animated: false , 完成:nil) 收到 UIViewController 没有成员 secondSB /secondVC 的错误。研究了这个问题,但没有设法解决。我改变情节提要的功能有意义吗? @iOSBeginner 您不应该在名称上使用 .storyboard(尽管它可能无关紧要)。您需要编辑您的问题以在您放置它们的任何方法中显示完整的代码。我认为您的范围有问题——我认为 secondVC 和 secondSB 都是局部变量,但在其上下文中查看代码会有所帮助。

以上是关于在 Swift 中连接多个故事板的主要内容,如果未能解决你的问题,请参考以下文章

使用同一个 XIB 的多个 Swift 故事板项目

Swift pagecontroller 故事板 UI 对象与 UIPageviewcontroller 连接

你如何摆脱swift中主要故事板的代码?

如何将边框添加到从 Swift 2.1 中的故事板链接的 @IBAction 按钮?

在 swift 3 上的按钮单击应用程序是与故事板绑定的崩溃

在没有 Segues 的故事板之间传递变量 - Swift