关于ios:带有UISplitViewController的MonoTouch.Dialog

MonoTouch.Dialog with UISplitViewController

我正在使用MonoTouch创建通用应用程序。在iPad上运行时,我使用UISplitViewController并通过MonoTouch.Dialog在主视图中(左侧)构建多级菜单。

问题是,当我触摸第一个根元素时,它会打开一个覆盖整个屏幕的新视图,而不是位于主拆分视图中。

问题是,如何使下一个根元素在与父元素相同的视图中打开?

我可以找到的所有示例通常在主视图上都有一个一级菜单,因此当您触摸它时,会在详细视图上显示某些内容。

希望这很有意义。


假设您有一个UISplitViewController和您的CustomViewController

1
2
UISplitViewController split = ...;
CustomViewController controller = ...;

如果要将新控制器推到当前(主)控制器的顶部,请使用:

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

如果要在详细信息(右)部分显示新控制器,请使用类似以下内容的方法:

1
2
3
4
5
6
7
8
UISplitViewController split = ...;
var about = new StringElement ("About");
about.Tapped += delegate {
    split.ViewControllers = new UIViewController [] {
        split.ViewControllers [0],
        controller
    };
};


所以,我想您要在母版中的表上添加有关触摸事件的新母版视图吗?

我不熟悉.dialog,但是我已经举了一个例子,据我所知:

使用rootviewcontroller.parentviewcontroller.splitviewcontroller,然后填充viewcontrollers[0]

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