2012-02-03 51 views
6

iOS 5引入了自定義容器視圖控制器的概念,並提供了像addChildViewController這樣的API。問題:你可以添加一個視圖控制器作爲一個孩子,仍然使用presentViewController?做後者會自動使它成爲presentingViewController的子視圖控制器嗎?addChildViewController和presentViewController

回答

9

這不是它應該如何使用。

父/子關係用於視圖控制器具有由其自己的視圖控制器管理的子視圖,例如UITabBarController,其中父視圖控制器繪製標籤並且子視圖控制器繪製每個標籤的內容。

如果您使用presentViewController呈現視圖控制器,它通常會佔用整個屏幕或出現在模式中,以便呈現視圖控制器不再受控制。在這種情況下,主持人沒有理由成爲父母,因爲它不需要與提供的控制器合作 - 直到所呈現的控制器再次被解僱爲止。

爲什麼你想這樣做?如果只是視圖控制器相互引用並且可以傳遞數據,還有其他方法可以執行此操作(例如委託模式,NSNotifications,甚至只是鏈接這兩者的屬性)。

+0

某處必須有對所呈現的視圖控制器的引用。它由系統持有嗎? – 2015-11-13 16:51:10