2012-10-02 44 views
1

我正在用MonoTouch創建通用應用程序。在iPad上運行時,我使用UISplitViewController,並使用MonoTouch.Dialog在主視圖(左側)中構建多級菜單。帶UISplitViewController的MonoTouch.Dialog

問題是,當我觸摸第一個根元素時,它將打開覆蓋整個屏幕而不是在主分割視圖內的新視圖。

問題是,我怎樣才能讓下一個根元素在同一個視圖中打開,因爲它是父對象?

我能找到的所有示例通常在主視圖上都有一個級別菜單,因此當您觸摸它時,會在詳細視圖中顯示一些內容。

希望這是有道理的。

回答

1

假設你有一個UISplitViewController和您的CustomViewController

UISplitViewController split = ...; 
CustomViewController controller = ...; 

如果你想對當前(主)頂部的新控制器的一個再使用:

var root = new RootElement(); 
var dvc = new DialogViewController (UITableViewStyle.Plain, root, true); 
dvc.ActivateController (controller); 

如果你想顯示在細節上新控制器(右)然後使用類似的東西:

UISplitViewController split = ...; 
var about = new StringElement ("About"); 
about.Tapped += delegate { 
    split.ViewControllers = new UIViewController [] { 
     split.ViewControllers [0], 
     controller 
    }; 
}; 
+0

謝謝,我的問題是相當尷尬 - 我沒有使用UINavigationController的主視圖! :( – ErnestJ

0

所以你想你的,我猜表中的主人在觸摸事件中填充一個新的主視圖?

我不熟悉.dialog但我給了一個例子,因爲我知道:

把你rootviewcontroller.parentviewcontroller.splitviewcontroller,然後填充viewcontrollers[0]

var split =(uisplitviewcontroller)rootviewcontroller.parentviewcontroller.splitviewcontroller; 
var nav = (uinavigationcontroller)split.viewcontrollers[0]; 
nav.pushviewcontroller(_yourView_);