2016-06-30 7 views
1

Wenn ich zu einer Seite navigiere, die einen Flow von NavigationPage.Navigation.InsertPageBefore (ContentPage) verwendet, dann NavigationPage.PopAsync(). ConfigureAwait (false) den Symbolleisteneintrag in der globalen Navigation Seite verschwindet, aber bei Verwendung von Push/Pop bleibt die Werkzeugleiste immer erhalten. Dies geschieht nur auf iOS.Bei Verwendung der Navigation in der InsertPageBefore-Methode verschwinden Symbolleistenelemente unter iOS

Die Navigationsseite ist ein globaler Bereich für die Anwendungsebene mit einer Hauptdetailseite, in der die Navigationsseite als Detailabschnitt dient.

hinzufügen ToolbarItem

var toobaritemMenu = new ToolbarItem 
{ 
    Icon = "Screenshot",         
    Command = new Command(() => Device.BeginInvokeOnMainThread(() => App.MasterNavigation.PushAsync(new ContentPage(), false))) 
}; 
App.MasterNavigation.ToolbarItems.Add(toobaritemMenu); 

Umzug in eine Seite wie diese Ursachen Toolbar Artikel auf iOS Disappear

Device.BeginInvokeOnMainThread(() => App.MasterNavigation.Navigation.InsertPageBefore(new ContentPage(), App.MasterNavigation.CurrentPage)); 
Device.BeginInvokeOnMainThread(() => App.MasterNavigation.PopAsync().ConfigureAwait(false)); 

Gibt es einen Grund dafür, wie es scheint inkonsistent, da es auf Android funktioniert.

Antwort

0

Ich stieß auf das gleiche Problem. Meine Abhilfe war zu ändern, wie ich den Navigationsstapel manipuliert: Statt die neue Seite einzufügen und die aktuelle Seite Abspringen, die neue Seite auf den Stapel schieben, und entfernen Sie dann die aktuellen:

await currentPage.Navigation.PushAsync(nextPage, animated: true); 
currentPage.Navigation.RemovePage(currentPage); 

Sie am Ende mit dem gleichen endgültigen Navigationsstapel, aber es vermeidet jedes Problem, das das Problem mit den sekundären Symbolleistenelementen in iOS verursacht.

Verwandte Themen