c# ios xamarin.ios monotouch.dialog

c# - ¿Tienes un UIViewController dedicado para cada RootElement en MonoTouch.Dialog?



ios xamarin.ios (2)

Es fácil crear una estructura de menú de niveles múltiples usando RootElements anidados en MonoTouch.Dialog pero ¿cómo harías para tener un UIViewController específico administrando cada raíz en su lugar? La razón por la que quiero que cada RootElement tenga su propio UIViewController es porque quiero poder controlar fácilmente cosas como la imagen de fondo y alternar la barra de navegación de pantalla en pantalla, y hacerlo es trival desde un UIViewController .


Lo mismo, menos métodos ...

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


Creo que estás buscando esto:

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

que le permiten crear el UIViewController (por ejemplo, un DialogViewController que personalizó o un tipo que hereda de él).

Esto le permitirá seguir anidando su Element mientras le da la mayor parte del control sobre la vista y su controlador.

ACTUALIZAR

Así es cómo se puede usar esto:

Primero declare su método que creará UIViewController. La firma del método debe coincidir con Func<RootElement, UIViewController> , por ej.

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

Luego crea tus elementos raíz usando:

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

Lo anterior le dará lo mismo que:

var root_element = new RootElement ("caption");

excepto que ahora puedes personalizar el DialogViewController a tu gusto antes de devolverlo.