Have a dedicated UIViewController for each RootElement in MonoTouch.Dialog?

时间秒杀一切 提交于 2019-12-09 03:37:52

问题


It's easy to create a multi-level menu structure using nested RootElements in MonoTouch.Dialog but how would you go about having a specific UIViewController manage each root instead? The reason I want each RootElement to have it's own UIViewController is because I want to be able to easily control things like background image and toggling the NavigationBar from screen to screen and doing so is trival from within a UIViewController.


回答1:


I think you're looking for this:

public RootElement (string caption, Func<RootElement, UIViewController> createOnSelected)

which let you create the UIViewController (e.g. a DialogViewController that you customized or a type that inherit from it).

This will let you keep nesting your Element while giving most of the control over the view and it's controller.

UPDATE

Here's how this can be used:

First declare your method that will create the UIViewController. The method signature must match Func<RootElement, UIViewController>, e.g.

    static UIViewController CreateFromRoot (RootElement element)
    {
        return new DialogViewController (element);
    }

Next create your root elements using:

    var root_element = new RootElement ("caption", CreateFromRoot);

The above will give you the same as:

    var root_element = new RootElement ("caption");

except you're now able to customize the DialogViewController to your liking before returning it.




回答2:


Same thing, less methods...

    var root_element = new RootElement("caption", (RootElement e) => {
        return new DialogViewController (e);
    });


来源:https://stackoverflow.com/questions/8545466/have-a-dedicated-uiviewcontroller-for-each-rootelement-in-monotouch-dialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!