2012-02-20 20 views
8

He encontrado un problema al presionar DialogViewController a mis aplicaciones globales UINavigationController, que perderá los botones de retroceso.DialogViewController rompe la ruta UINavigationController

pude reducirlo a este sencillo ejemplo:

var nav = new UINavigationController(); 
window.RootViewController = nav; 

nav.PushViewController(new UIViewController() { Title = "#1"}, true); 
nav.PushViewController(new DialogViewController(new RootElement("#2")), true); 
nav.PushViewController(new UIViewController() { Title = "#3"}, true); 

Usted puede obtener de #3 a #2, pero no de #2 a #1.

¿Estoy haciendo algo mal con el DialogViewController? Pensé que podrían funcionar como un reemplazo directo para UIViewController.

Respuesta

12

Utilice simplemente:

nav.PushViewController(new DialogViewController(new RootElement("#2"), true), true); 

es decir, adicional true para la DialogViewControler constructor.

+0

Eso fue complicado. Pero supongo que hay buenas razones para alejarse del comportamiento predeterminado de UIViewController. – Timm

+0

Esto me ha estado sacudiendo por un tiempo. Me encantaría saber cómo lo descubrió ... –

+1

@ChristianPayne No recuerdo exactamente cómo lo descubrí, pero es probable que esté leyendo el código fuente de MT.D, que está disponible en https: // github .com/migueldeicaza/MonoTouch.Dialog – poupou

Cuestiones relacionadas