2009-11-02 83 views
-2

基本上,我想要做的就是在ViewControllerA內部顯示ViewControllerB和ViewControllerC。我會怎麼做?iPhone SDK:如何在另一個顯示視圖控制器?

在此先感謝。

+1

你的問題有點含糊。如果你不想爲你的項目提供具體細節,請選擇一個知名的應用程序,並說:「Facebook應用程序用x做了什麼?」 – 2009-11-02 23:09:52

回答

0

導航視圖控制器的默認模板應該做你想要的,假設你想要兩個不同的屏幕(在同一屏幕上不是兩個不同的部分)。每當你想視圖從當前到另一個改變,只是告訴導航控制器推到堆棧:

[self.navigationController pushViewController:viewBoards animated:YES]; 

默認的導航視圖控制器爲您提供了一個根視圖控制器在導航視圖控制器它。它還爲您提供了一個名爲MainWindow的視圖控制器。只需添加儘可能多的MainWindow副本即可獲得您的功能。

+0

我認爲(糾正我,如果我錯了)jp希望兩個viewcontrollers沒有采取整個屏幕同時顯示。 – 2009-11-02 23:19:10

+0

在對你的回答發表評論之後,我不清楚他只是可能忽略了簡單的解決方案。 – 2009-11-02 23:21:53

+0

這是我需要的。謝謝。 – 2009-11-02 23:25:22

1

您不顯示視圖控制器,您顯示視圖。話雖如此,你可以這樣做:

UIViewController *a = ...; 
UIViewController *b = ...; 
[a.view addSubview:b.view]; 

現在,說了那麼,你不應該這樣做。由於UIView,UIWindow和UIViewController之間存在大量未公開的交互,所以東西的行爲並不正確。文檔中沒有任何內容說明它不起作用,但隨機的東西不能正常運行(內部視圖的VC不會調用viewWillAppear:等)。

如果您需要此功能,您應該爲file Apple提供一個錯誤。

+0

這是事情。我有一個事件需要觸發兩個不同信息的屏幕。這通常如何處理? – 2009-11-02 23:06:26

+0

定義2個屏幕?我假設你的意思是一個包含2個值得信息的分屏。通常你會使用單個視圖控制器來完成它。是的,它很糟糕。你可以實現你自己的控制器類,並讓視圖控制器做事件路由,如果你想更通用,但它是很多工作。爲了在一個項目中支持這個項目,我必須完全重新實現UIViewController,UINavigationController,UITableViewController以及一個自定義的UIWindow子類來處理事件路由。 – 2009-11-02 23:15:02

相關問題