假设我有一个代码
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var userInfo = SettingsManager.Read<User>(SettingsManager.UserInfoSetting);
if (e.NavigationMode == NavigationMode.Back && userInfo == null)
{
_mainViewModel.NavigationService.GoBack();
}
if (e.NavigationMode == NavigationMode.New && userInfo == null)
{
_mainViewModel.NavigationService.NavigateTo(new Uri(ViewModelLocator.SettingPageUrl, UriKind.Relative));
}
base.OnNavigatedTo(e);
}
当用户第一次运行应用程序时,他将被重定向到设置页面,并且现在可以正常工作。如果用户不想提供他的信息,那么在这种情况下,我可以按返回按钮,以跳过应用程序的主页并退出该应用程序。如果我运行代码,则收到
InvalidOperationException
Cannot go back when CanGoBack is false.
GoBack()
方法调用PhoneApplicationFrame.GoBack()
方法进行导航。 最佳答案
您不能以这种方式强行退出。
您可以做的是处理在设置页面上按后退按钮的操作并清除堆栈(允许),然后让后退按钮得到处理-这样用户将由于后退按钮而不是您的通话而退出。