Ho un controller barra delle schede che poi giù le mani a un controller di navigazione (anche in uno storyboard con flyoutnavcontollers). Uno dei viewcontrollers da qui si avvia in un dialogviewcontroller per roba MT.D.
Volevo un pulsante con punta aguzza/affusolato dalla finestra di dialogo Monotouch indietro al mio punto di chiamata nel controller di navigazione.
Ma l'avvio in MT.D perde la navigazione anche quando im utilizzando il controller di navigazione corrente per qualche motivo, ovvero il pulsante non viene visualizzato e non c'è modo di tornare indietro. Le successive schermate mt.d forniscono un pulsante indietro.
A quanto pare il tuo dovrebbe passare un vero booleano nella chiamata per abilitare il tasto mentre spingendo sulla pila esistente, ma questo non ha funzionato di nuovo per me:
this.NavigationController.PushViewController (dv, true);
sopra il lavoro non ha ancora la soluzione di Dan per me. Ma facendo scattare l'attuale dialogviewcontroller mentre si trova nella schermata principale di MT.D, è possibile tornare alla posizione precedente nel controller di navigazione originale nello storyboard (o nel controller flyoutnav).
Non sono sicuro se questo hack è il modo corretto ma funziona.
dv.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e)
{
NavigationController.PopViewControllerAnimated(true);
});
* aggiornamento
ho consumassimo ottenere un pulsante indietro aggiungendo il dialogviewcontroller di viewcontrollers corrente visualizzazione secondaria:
dvc = new MyDvcController(this.NavigationController);
this.View.AddSubview(dvc.TableView);
corrispondente MyDvcController principalmente loooks come questo:
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),
}
};
}
}
questo ha permesso al monotouch.dialog di essere parte della navigazione corrente controllori stack e ottenere pulsante indietro automatico con l'aspetto conico ..yay
BTW, tutto il parametro "true" è impostato su NavigationItem.HidesBackButton su false. Lo fa nel metodo ViewWillAppear, quindi se si sostituisce quel metodo è possibile visualizzare nuovamente il pulsante Indietro. È utile se stai spingendo il DialogViewController tramite uno storyboard. –