我有一个使用Prism和Unity的Xarmarin Forms应用程序,导航到标签页时遇到问题 .
我使用以下版本:Prism.Forms v6.1.0-pre5 Prism.Unity.Forms v6.2.0-pre5 Xamarin.Forms v2.3.0.38-pre2
我的标签页看起来像这样
<?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>
我正在尝试导航到选项卡页面,并选择了服务订单明细页面,但是当我根据此blog post导航时 . 它通过选项卡页面导航到单独的服务订单明细页面
var p = new NavigationParameters();
p.Add("serviceorder", context);
await _navigationService.NavigateAsync($"{nameof(ServiceOrderTabs)}/{nameof(ServiceOrderDetails)}",p);
1 回答
您将页面包装在Prism不知道的通用NavigationPage中 . 您需要创建派生的NavigationPage并将其注册以进行导航 . 然后用它来包装你的COntentPages . 然后你可以尝试像“ServiceOrdersTabs / MyNavigationPage / ServiceOrdersDetails”那样导航 .
但即使这样我现在考虑也可能不起作用,因为你将拥有相同NavigationPage的多个实例,而Prism将使用它找到的第一个并使用它 .
对于解决方法,您必须为每个选项卡(ServiceOrderSummaryNavPage,ServiceOrdersDetailsNavPage等)创建不同的NavigationPage,以确保每个选项卡都是唯一的 .
顺便问一下,你从哪里航行?