当我们在项目中添加多个故事板时,什么时候需要指定和声明故事板变量

When do we need to specify and declare the storyboard variable when we add several storyboards to the project

我正在开发一个 swift 应用程序,对在项目中使用多个故事板有疑问。

我的项目中有两个故事板,我将故事板中第一个 View Controller 的 segue 添加到另一个故事板。由于想在segue中传递数据,所以一开始我在第一个storyboard的prepare(for segue...)函数中写了如下代码,

    let storyboard = UIStoryboard(name: "secondStoryboard", bundle: nil)
    let vc = storyboard.instantiateInitialViewController()!

还有其他问题,在我做了一些重构之后,我的准备函数变成了,

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "toSecondVC") {
        // there is a table view and get the cell's title when move to another viewcontroller
        let row = (sender as! NSIndexPath).row
        let secondVC = segue.destination as! SecondViewController
        secondVC.cellTitle = cells[row].title   
    }
}

我删除了情节提要变量并且它工作正常(当我移动到第二个视图控制器时,我可以在打印语句中看到单元格的标题。

我读了一些文章,我看到人们在有超过 2 个故事板变量时声明故事板变量。由于我的应用程序(未在 prepare 函数中声明故事板变量)工作正常,我想知道是否有必要添加此代码 let storyboard = UIStoryboard(name: "secondStoryboard", bundle: nil),当我将 segue 添加到不同的故事板时。或者我只需要指定我接下来要呈现的视图控制器,就像我写的那样 let secondVC = segue.destination as! SecondViewController?

唯一需要在代码中实例化情节提要的时候是在不使用 segue 移动到它的时候。

如果您有两个故事板 A 和 B,并且在 A 内部创建一个转场箭头并将其指向故事板 B(就像您在项目中所做的那样),那么该转场将为您实例化故事板。

就像创建从一个视图控制器到下一个视图控制器的转场一样。您不必再在代码中实例化视图控制器。您创建的 segue 会为您做到这一点。