我正在使用Xamarin Forms并尝试从按钮命令退出导航堆栈 - 并导航到新页面(基本上,我想"重置"历史记录后退按钮)。
_finishToolbarItem.Command = new Command(o => {
Navigation.PopToRootAsync().ContinueWith(task => {
Navigation.PushAsync(new StackOverflow());
},
TaskContinuationOptions.OnlyOnRanToCompletion
);
}
我也试过在异步命令包装器中执行此操作:
_finishToolbarItem.Command = new Command(async o => {
await Navigation.PopToRootAsync();
await Navigation.PushAsync(new StackOverflow());
});
这两种方法都将我转发到根页面 - 但是跟进PushAsync()
无法正常工作,尽管它按正确顺序调用。
我怎样才能"撤消" Xamarin Forms中的导航堆栈(所以"后退"按钮没有任何东西可以返回)并推送新页面?
答案 0 :(得分:2)
你可以
InsertPageBefore (Page yourNewRootPage, Page firstPageInNavigationStack)
然后PopToRoot()
答案 1 :(得分:0)
试试这个:
Navigation.InsertPageBefore(new NewPage(),Navigation.NavigationStack[0]);
await Navigation.PopToRootAsync();