繁体   English   中英

Prism Xamarin表单选项卡式页面导航

[英]Prism Xamarin Forms Tabbed Page Navigation

我有一个使用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>

我试图导航到选择了服务订单详细信息页面的选项卡式页面,但是当我根据此博客文章导航时。 它导航至选项卡式页面之外的单独服务订单明细页面

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

您将页面包装在Prism不知道的通用NavigationPage中。 您需要创建一个派生的NavigationPage并将其注册以进行导航。 然后使用它包装您的COntentPages。 然后,您可以尝试像“ ServiceOrdersTabs / MyNavigationPage / ServiceOrdersDetails”一样导航。

但是,即使现在考虑到这一点,可能也行不通,因为您将拥有同一NavigationPage的多个实例,Prism将使用找到的第一个实例并使用该实例。

要变通,您必须为每个选项卡(ServiceOrderSummaryNavPage,ServiceOrdersDetailsNavPage等)创建一个不同的NavigationPage,以确保每个选项卡都是唯一的。

顺便说一下,您从哪里导航?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM