2017-10-20 43 views
0

我想了解兩個視圖控制器之間的通信。instantiateViewController(withIdentifier :) vs ViewController(nibName:bundle :)之間有什麼區別?

當傳遞沒有segue的數據時,我看到了兩種創建目標控制器實例的方法。第一個是storyboard?.instantiateViewController(withIdentifier:)。第二個是ViewController(nibName:bundle:)。然後給他們提供present(UIViewController..)

這兩種方法有什麼區別?他們只是通過故事板標識符或nibName找到視圖控制器嗎?

+0

是的,它取決於設計視圖控制器的位置(即文件的類型)。 –

回答

3

instantiateViewController(withIdentifier)爲視圖控制器是故事板內側,而UIViewController(nibName:bundle:)是針對是在一個.xib文件創建的。兩者都可以使用,只是取決於應用程序的創建方法。

如果您打算製作複雜的視圖控制器關係,故事板可能是更好的解決方案,因爲如果您可以在二維位置構建VC,視圖控制器組織效率更高。

相關問題