I think you are looking for this:
public RootElement (string caption, Func<RootElement, UIViewController> createOnSelected)
which allows you to create a UIViewController (for example, the DialogViewController that you configured, or a type inheriting from it).
This will allow you to embed your Element at the same time most of the control over the view and its controller.
UPDATE
Here's how to use it:
First declare your method that will create the UIViewController. The method signature must match Func<RootElement, UIViewController> , for example.
static UIViewController CreateFromRoot (RootElement element) { return new DialogViewController (element); }
Then create your root elements using:
var root_element = new RootElement ("caption", CreateFromRoot);
The above will give you the same thing:
var root_element = new RootElement ("caption");
except that now you can customize the DialogViewController to your liking before returning it.
source share