2012-02-09 62 views
1

我使用MonoTouch創建了單視圖ipad應用程序。我想爲應用程序創建更多的屏幕/視圖。所以我爲當前的解決方案添加了一個新的ipad視圖。當我這樣做時,xib只能添加到解決方案中(沒有對應的.cs文件,視圖控制器)。我在IB中設計了xib,但是我不知道如何將它添加到已經存在的視圖控制器中。如何在MonoTouch中使用不同的視圖/屏幕/ xibs?

我希望我已經說清楚了,那麼請你告訴我如何繼續。

回答

1

答案很簡單:

一般來說,你會希望有每個廈門國際銀行視圖控制器。如果您使用「iPad視圖控制器」模板,它將創建一個控制器類和一個xib文件供其加載。但是,您可以非常輕鬆地手動添加控制器類 - 或者僅複製現有的控制器類。

基控制器類做的工作裝和管理廈門國際銀行 - 你告訴它通過傳遞廈門國際銀行名稱添加到基礎構造的使用方法:

public partial class MyViewController : UIViewController 
{ 
    public MyViewController() : base ("MyXibName", null) 
    ... 

高級答案

「nib」是包含序列化UI對象的文件。 「xib」只是一個筆尖的XML表示。在構建應用程序包時,您的xib將被編譯爲nibs。以直接從應用程序包中加載一個筆尖的API是:

NSBundle.MainBundle.LoadNib (xibName, owner); 

的XIB的名稱是其束資源ID - 文件名但沒有擴展。

這將加載筆尖,反序列化其中的所有對象,並將其所有插口連接到owner對象。這就是您在Interface Builder中看到的「文件所有者」對象。您可以在IB中設置其類型,然後將對象連接到其出口和操作。從技術上講,在運行時使用的所有者對象的類型實際上並不重要,只要它具有與xib中的對象相連的相同的命名插座和操作,並且這些類型是兼容的。

在運行時您可以靈活掌握nib和所有者對象。例如:

  • 視圖控制器可以通過向基礎構造函數傳遞不同的nib名稱來根據設備類型加載不同的nib。這對通用應用程序(iPhone + iPad)很有用。
  • 一個筆尖可以包含許多UIView並將它們連接到其所有者上的多個出口,或者如果您不想擁有很多控制器,則單個控制器可以顯式加載並擁有多個筆尖。
  • 不同的控制器可以加載相同的筆尖,但將不同的數據加載到其小部件中。
  • 您可以擁有一個帶有插座的基礎控制器類,並且許多屬於不同子類的控制器類的nib可以連接到這些插座。
+0

我還是輸了。如果可能的話,您可以向我提供在按下按鈕時將不同筆尖加載到視圖控制器中的代碼。 – 2012-02-10 20:01:24

+0

你可能想要一個NavigationViewController並將新的ViewController推到它上面。有關示例,請參閱Master-Detail模板。 – 2012-02-12 04:01:58

+0

如何從一個基本的視圖控制器,它有兩個按鈕,打開兩個新的視圖? – 2012-02-16 18:03:06

相關問題