我在我的Xamarin表单应用程序中有几个导航栈,就像这样。SearchPage和AboutPage都是屏幕底部的可见/可导航标签。
searchPage
searchResultPage
aboutPage
settingsPage
我特别感兴趣的是有人导航到搜索结果页面的情况(//searchPage/searchResultPage),然后使用底部的选项卡转到aboutPage。现在他们已经在About页面中,如果他们单击底部的搜索页面选项卡,默认的行为是,他们被带回到搜索结果页面,因为他们从来没有关闭了它。我希望这个搜索结果页面被自动关闭,所以当他们点击搜索页面时,他们确实被带到那里(导航栈的开始),而不是搜索结果页面(导航栈的结束)。
编辑以添加appshell/导航脚本--
应用程序 shell 程序:
<TabBar>
<ShellContent Title="Search" Icon="icon_search.png" Route="SearchPage" ContentTemplate="{DataTemplate local:SearchPage}"/>
<ShellContent Title="About" Icon="icon_about.png" Route="AboutPage" ContentTemplate="{DataTemplate local:AboutPage}"/>
</TabBar>
搜索页面上的导航:
async void LoadSearch(int passedNum)
{
await Navigation.PushAsync(new ResultPage(passedNum));
}
1条答案
按热度按时间0kjbasz61#
你可以在
searchResultPage.xaml.cs
中生成OnDisappearing
覆盖。一旦离开searchResultPage
,它会自动调用OnDisappearing
。在OnDisappearing
中,Navigation
的方法PopAsync
从导航堆栈中弹出searchResultPage
。至此,你所需要的已经达到。