我们可以使用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)
我的问题是:这些方法有什么区别?他们似乎完全一样。
答案 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不能具有相同的标识符。