StoryboardID和StoryboardSegueIdentifier之间的区别

时间:2018-01-25 13:22:32

标签: ios swift storyboard segue

我们可以使用segueIdentifiers从mainViewController移动到detailViewController。示例:

performSegueWithIdentifier("toDetailViewController", sender: self)

我们还可以使用StoryboardID从故事板手动创建我们的detailViewController,然后从mainViewController推送或呈现。例如:

let detailViewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("detailViewController") as UIViewController
self.present(detailViewController)

我的问题是:这些方法有什么区别?他们似乎完全一样。

2 个答案:

答案 0 :(得分:2)

不同之处在于,一个是通过故事板完成的(您可以看到segue箭头),另一个是通过编程方式完成的。就像你问swift中编程UI和使用故事板编程它有什么区别一样。

在第一种情况下,您甚至不必调用performSegueWithIdentifier,您可以将segue绑定到故事板中的按钮,因此只使用没有任何快速代码的故事板。

虽然有很多文章都在谈论故事板,但我真的建议你看一下this one,看看它有点不同。

答案 1 :(得分:2)

他们都是故事板参考相关的标识符。主要区别是一个performSegueWithIdentifier基于segue和where the segue points to实例化一个对象,而另一个instantiateViewControllerWithIdentifier基于Viewcontroller标识符(而不是segue)实例化一个唯一的Viewcontroller。

故事板中的不同位置可以有多个具有相同标识符的segue,而storyboard中的Viewcontroller不能具有相同的标识符。