2010-01-12 45 views
0

我正在嘗試做一個視圖的手動實例化,我得到的只是一個黑屏。手動實例化一個視圖...黑屏

這裏是我的FinishedLoading的核心

currentController = new ChoicesScreen(this.window.Handle); 
window.AddSubview (currentController.View); 
window.MakeKeyAndVisible(); 

注:CurrentController是protected UIViewController currentController

ChoicesScreen在IB定義,具有正確的網點,動作等換句話說,它是一個有效的視圖。

我嘗試了ChoicesScreen的默認構造函數,並得到了同樣的結果。顯然,我錯過了如何讓自己的屏幕出現。

回答

1

德里斯,

您需要設置新視圖框架,定義它會在視圖中顯示:

currentController = new ChoicesScreen(this.window.Handle); 
currentController.View.Frame = new System.Drawing.RectangleF(0, 0, 320, 480); 
window.AddSubview (currentController.View); 
window.MakeKeyAndVisible(); 
+0

問題,對於每一個導致另一個視圖以查看被添加到頂部,我必須使用原始窗口句柄和原始窗口.AddSubView或我如何堆疊它們? – 2010-01-19 17:37:59

+0

不知道我是否正確理解你的問題,但你只需要將頂部視圖添加到窗口中,只需要一次(通常在AppDelegate中)。 之後,您可以使用AddSubview方法將多個視圖(以及控件,如按鈕和標籤)添加到您創建的第一個視圖中。 – 2010-01-19 19:32:51

+0

但視圖本身沒有AddSubView方法,對吧?那麼有沒有一種方法可以讓任何視圖訪問窗口對象,以便他們可以使用要呈現的另一個視圖的AddSubView?例如在Main.cs中我們有AddSubview(firstView),firstView上的用戶按下一個按鈕來調出secondView,有沒有辦法訪問窗口對象來做window.AddSubview(secondView)? – 2010-01-24 03:32:26