Mam kontroler pasek kart, które następnie Ręce precz do kontrolera nawigacji (w scenorysie również z flyoutnavcontollers). Jeden z kontrolerów viewcontroller z tego miejsca uruchamia kontrolkę windowviewontroler dla plików MT.D.
Potrzebowałem uroczego spiczastego/zwężonego przycisku wstecz z okna dialogowego monotouch z powrotem do mojego punktu wywołania w kontrolerze nawigacyjnym.
Ale uruchomienie w MT.D traci nawigację, nawet gdy używam bieżącego kontrolera nawigacji z jakiegoś powodu, tj. Przycisk nie jest wyświetlany i nie ma możliwości powrotu. Kolejne ekrany mt.d dają przycisk powrotu.
Widocznie twój powinien przekazać prawdziwą wartość logiczną na wezwanie, aby włączyć przycisk jednocześnie naciska na istniejący stos, ale to nie działał z powrotem do mnie:
this.NavigationController.PushViewController (dv, true);
prace nad rozwiązaniem Dan zrobił dla mnie. Ale pojawienie się bieżącego okna dialogowego windowview podczas pracy na głównym ekranie MT.D pomaga wrócić do mojej poprzedniej pozycji w oryginalnym kontrolerze nawigacyjnym w scenorysie (lub sterowniku flyoutnav).
Nie jestem pewien, czy ten hack jest poprawny, ale działa.
dv.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e)
{
NavigationController.PopViewControllerAnimated(true);
});
* aktualizacja
I manged dostać z powrotem przycisk dodając dialogviewcontroller do aktualnej viewcontrollers podrzędny:
dvc = new MyDvcController(this.NavigationController);
this.View.AddSubview(dvc.TableView);
odpowiedni MyDvcController głównie loooks tak:
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),
}
};
}
}
this zezwolił monotouch.dialog na stanie się częścią obecnego stosu kontrolerów nawigacyjnych i uzyskał automatyczny przycisk powrotu o stożkowatym wyglądzie .. tak
BTW, wszystkie "prawda" parametr jest ustawiony na NavigationItem.HidesBackButton na false. Robi to w metodzie ViewWillAppear, więc jeśli zastąpisz tę metodę, możesz wrócić do przycisku wstecz. Jest to przydatne, jeśli przesuwasz kontrolkę DialogViewController za pomocą storyboardu. –