2016-05-13 16 views
2

Ich habe eine Xarmarin Forms-Anwendung mit Prism und Unity und habe Probleme beim Navigieren zu einer Registerseite.Prism Xamarin Formulare Registerkarte Navigation

Ich verwende die folgenden Versionen: Prism.Forms V6.1.0-pre5 Prism.Unity.Forms V6.2.0-pre5 Xamarin.Forms v2.3.0.38-pre2

sieht Meine tabbed Seite wie diese

<?xml version="1.0" encoding="utf-8" ?> 
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" 
     prism:ViewModelLocator.AutowireViewModel="True" 
     xmlns:local="clr-namespace:ServiceOrdersMobileApps.Views;assembly=ServiceOrdersMobileApps" 
     x:Class="ServiceOrdersMobileApps.Views.ServiceOrderTabs"> 
<NavigationPage Title="Summary"> 
    <x:Arguments> 
    <local:ServiceOrderSummary /> 
    </x:Arguments> 
</NavigationPage> 
<NavigationPage Title="Complete"> 
    <x:Arguments> 
    <local:ServiceOrderDetails /> 
    </x:Arguments> 
    </NavigationPage> 
</TabbedPage> 

ich versuche, auf die Registerseite mit dem Serviceauftrag Detail Seite ausgewählt zu navigieren, aber wenn ich navigieren nach dieser blog post. Es navigiert über die Registerseite in einer separaten Serviceauftrag Detail Seite

var p = new NavigationParameters(); 
p.Add("serviceorder", context); 
await _navigationService.NavigateAsync($"{nameof(ServiceOrderTabs)}/{nameof(ServiceOrderDetails)}",p); 

Antwort

2

Sie die in einem allgemeinen NavigationPage gewickelte Seite, die Prism nicht kennt. Sie müssen eine abgeleitete NavigationPage erstellen und für die Navigation registrieren. Verwenden Sie das dann, um Ihre COntentPages zu umbrechen. Dann können Sie versuchen, wie "ServiceOrdersTabs/MyNavigationPage/ServiceOrdersDetails" zu navigieren.

Aber auch das funktioniert jetzt nicht, wenn ich darüber nachdenke, denn Sie haben mehrere Instanzen derselben NavigationPage und Prism wird die erste verwenden, die es findet und verwendet.

Für eine Problemumgehung müssen Sie für jede Registerkarte eine andere Navigationsseite erstellen (ServiceOrderSummaryNavPage, ServiceOrdersDetailsNavPage usw.), um sicherzustellen, dass jede Registerkarte eindeutig ist.

Übrigens, woher navigieren Sie?

+0

Wenn ich ServiceOrdersDetailsNavPage, die NavigationPage implementiert, erstellen, wie kann ich ServiceOrdersTabs Kinder mit meinem ServiceOrdersDetailsNavPage erstellen, weil ich nicht meine Basiskonstruktor aufrufen kann, die eine Seite in der XAML benötigt. Danke –

+0

Fügen Sie einfach die Seiten der TabbedPage in XAML hinzu, wie Sie es normalerweise tun würden. –

Verwandte Themen