Tengo un controlador de la barra de pestañas que luego fuera de las manos a un controlador de navegación (en un guión gráfico con flyoutnavcontollers también). Uno de los controladores de vista de aquí se inicia en un dialogviewcontroller para cosas de MT.D.
Quería un precioso botón de retroceso con punta/cónica desde el cuadro de diálogo de monotouch hasta mi punto de llamada en el controlador de navegación.
Pero iniciar en MT.D pierde la navegación incluso cuando estoy usando el controlador de navegación actual por algún motivo, es decir, el botón no se muestra y no hay forma de volver. Las pantallas posteriores de mt.d dan un botón de retroceso.
Al parecer, su supuesta a pasar un verdadero booleano en la llamada para activar el botón y deslice en la pila existente pero esto no funcionó para mí volver:
this.NavigationController.PushViewController (dv, true);
por encima de obra ni de solución de Dan para mí. Pero abrir el dialogviewcontroller actual mientras está en la pantalla raíz MT.D ayuda a volver a mi posición anterior en el controlador de navegación original en el guión gráfico (o controlador flyoutnav).
No estoy seguro de si este truco es el correcto pero funciona.
dv.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e)
{
NavigationController.PopViewControllerAnimated(true);
});
* actualización
me manejadas para obtener un botón de retroceso mediante la adición de la dialogviewcontroller a viewcontrollers actual subvista:
dvc = new MyDvcController(this.NavigationController);
this.View.AddSubview(dvc.TableView);
la correspondiente MyDvcController principalmente loooks como este:
public partial class MyDvcController : DialogViewController
{
public MyDvcController (UINavigationController nav): base (UITableViewStyle.Grouped, null)
{
navigation = nav;
Root = new RootElement ("Demos"){
new Section ("Element API"){
new StringElement ("iPhone Settings Sample", DemoElementApi),
}
};
}
}
esto permitió que monotouch.dialog forme parte de la pila actual de controladores de navegación y logre el botón de retroceso automático con la apariencia cónica ..ayy
BTW, todo lo que hace el parámetro "verdadero" es establecer NavigationItem.HidesBackButton en falso. Lo hace en el método ViewWillAppear, por lo que si anulas ese método, puedes volver a mostrar el botón Atrás. Eso es útil si está presionando el DialogViewController a través de un guión gráfico. –