使用RootElements
中的嵌套MonoTouch.Dialog
创建多级菜单结构很容易,但是如何让特定的UIViewController
管理每个根?我希望每个RootElement
拥有它自己的UIViewController
的原因是因为我希望能够轻松控制背景图像之类的事情并将NavigationBar从一个屏幕切换到另一个屏幕,并且这样做是从{ {1}}。
答案 0 :(得分:9)
我认为你正在寻找这个:
public RootElement (string caption, Func<RootElement, UIViewController> createOnSelected)
可让您创建UIViewController
(例如您自定义的DialogViewController
或从中继承的类型。)
这样可以让您保持嵌套Element
,同时对视图及其控制器进行大部分控制。
<强>更新强>
以下是如何使用它:
首先声明将创建UIViewController的方法。方法签名必须与Func<RootElement, UIViewController>
匹配,例如
static UIViewController CreateFromRoot (RootElement element)
{
return new DialogViewController (element);
}
接下来使用以下方法创建根元素:
var root_element = new RootElement ("caption", CreateFromRoot);
以上内容将与您相同:
var root_element = new RootElement ("caption");
除了您现在能够在返回之前根据自己的喜好自定义DialogViewController
。
答案 1 :(得分:8)
同样的事情,更少的方法......
var root_element = new RootElement("caption", (RootElement e) => {
return new DialogViewController (e);
});