instantiateViewController(withIdentifier :)与ViewController(nibName:bundle :)之间有什么区别?

时间:2017-10-20 15:41:25

标签: ios uiviewcontroller

我试图了解两个视图控制器之间的通信。

当传递没有segue的数据时,我看到了两种创建目标控制器实例的方法。

第一个是storyboard?.instantiateViewController(withIdentifier:)。第二个是ViewController(nibName:bundle:)。然后将其显示为present(UIViewController..)

这两种方法有什么区别?他们只是通过故事板标识符或nibName找到视图控制器吗?

1 个答案:

答案 0 :(得分:4)

instantiateViewController(withIdentifier)适用于在故事板中的视图控制器,而UIViewController(nibName:bundle:)适用于在<{1}}文件中创建的视图控制器。两者都可以使用,它只取决于创建应用程序的方法。

如果您计划制作复杂的视图控制器关系,故事板可能是更好的解决方案,因为当您可以在二维位置构建VC时,视图控制器组织会更有效。