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.