导航回第一个外壳项目



你好,我遇到了这个问题,我需要回到我的第一个外壳项目,因为我不知道怎么做,谷歌搜索也没有帮助。

<ShellItem Route="ChoicePage" >
<ShellContent ContentTemplate="{DataTemplate local:ChoicePage}" />
</ShellItem>
<ShellItem Route="LoginPage" >
<ShellContent ContentTemplate="{DataTemplate local:LoginPage}" />
</ShellItem>
<TabBar Route="MainPage">
<Tab Title="{helpers:Translate Explore}" 
Icon="explore.png" 
Route="ExplorePage">
<ShellContent ContentTemplate="{DataTemplate local:ExplorePage}" />
</Tab>
<Tab Title="{helpers:Translate Plan}" 
Icon="globe.png" 
Route="NextTripsPage">
<ShellContent ContentTemplate="{DataTemplate local:NextTripsPage}" />
</Tab>
<Tab Title="{helpers:Translate Trips}" 
Icon="around.png" 
Route="MyTripsPage">
<ShellContent ContentTemplate="{DataTemplate local:MyTripsPage}" />
</Tab>
<Tab
Title="{helpers:Translate Map}"
Icon="map.png"
Route="MyMap">
<ShellContent ContentTemplate="{DataTemplate local:FullMapPage }" />
</Tab>
<Tab
Title="{helpers:Translate MeTextProfile}"
Icon="me.png"
Route="MyProfilePage">
<ShellContent ContentTemplate="{DataTemplate local:MyProfilePage}" />
</Tab>
</TabBar>

我有这两个shell项目,当用户转到ExplorePage或任何TabBar时,我想将后退按钮设置为返回ChoicePage。我试着添加了await Shell.Current.GoToAsync("..");,但没有成功,即使是PopToRootAsync()也不起作用。

如果您想覆盖某些特定页面中导航后退按钮(软按钮,而非物理按钮(的默认行为,则需要在这些页面中设置附加的Shell.BackButtonBehavior:

ExplorePage.xaml

<ContentPage ...>    
<Shell.BackButtonBehavior>
<BackButtonBehavior Command="{Binding BackCommand}"/>   
</Shell.BackButtonBehavior>
...
</ContentPage>

ViewModel

public Command BackCommand { get; set; } =  new Command(
async () => await Shell.Current.GoToAsync(nameof(ChoicePage)));

如果你想让物理后退按钮也以同样的方式运行,那么你需要覆盖页面代码后面的OnBackButtonPressed((,相关问题确认对话框后退按钮按下事件Xamarin.Forms

相关内容

  • 没有找到相关文章

最新更新