我有一个使用UWP的简单Xamarin Forms应用程序。我正在推动一个新观点:
await Navigation.PushAsync(new NavigationPage(new MyDetailView()));
当该视图加载时,没有后退按钮来返回堆栈。推荐的方法是什么?请注意,iOS中存在后退按钮。
答案 0 :(得分:8)
桌面上的后退按钮可以使用以下代码段显示:
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
AppViewBackButtonVisibility.Visible;
这将在应用程序的标题栏中显示后退按钮。您可能希望在每个导航上更新此状态,以便在不需要时(导航堆栈为空时)不显示该按钮。
但我想这应该会自动发生,因为这是Xamarin.Forms中已有的行为 - 请参阅NavigationPageRenderer源代码行463。
我认为问题可能是这样的事实,即您正在尝试将新视图包装在新的NavigationPage
中,该视图会窃取导航堆栈并将其清空。我认为这应该按照您的预期工作并解决您的问题(仅推送现有NavigationPage
中的新视图):
Navigation.PushAsync( new MyDetailView() );