所以我休息了一下,从 C# 转到 VB 来开发 Windows Phone 8 应用程序。这只是一个测试,我有这个非常奇怪的问题。
首先我的基本场景是我有页面A和页面B。用户必须在进入页面B之前填写一些详细信息。只有当用户已经填写了页面A中的信息时才会显示页面B,有点像第一次跑步。
我所做的是添加了以下代码:
Private Sub createbtn_Click(sender As Object, e As RoutedEventArgs) Handles createbtn.Click
'...
IsoSettings.Add("AccountCreated", Nothing)
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
End Sub
一旦用户单击“创建帐户”按钮。他将被导航到页面 B,此后用户将不必在页面 A 中填写信息。“AccountCreated”是一种检查。在这里:
Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
If IsoSettings.Contains("AccountCreated") Then
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative)) 'Page B
NavigationService.RemoveBackEntry()
Else
NavigationService.Navigate(New Uri("/MainPage.xaml", UriKind.Relative)) 'Page A
End If
End Sub
所以基本上检查并查看 IsoSettings 是否包含“AccountCreated”然后将用户带到页面 B,如果不将他带到页面 A。现在这种方式工作正常。没问题。按我想要的方式工作。
现在我添加了一个设置页面。有一种设置,用户可以决定是否显示登录页面。如果它是“关闭”的,那么显然它不会被显示并且打开......
我已经添加了这个:
If IsoSettings.Contains("AccountCreated") Then
Try
Dim ShowLoginPage As Byte = CByte(AppSettings("StartupLogin"))
If ShowLoginPage = 0 Then
NavigationService.Navigate(New Uri("/LoginPage.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
ElseIf ShowLoginPage = 1 Then
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
End If
Catch ex As KeyNotFoundException
AppSettings.Add("StartupLogin", 0)
End Try
Else
NavigationService.Navigate(New Uri("/MainPage.xaml", UriKind.Relative))
End If
现在这就是问题发生的地方。所以当用户第一次运行这个应用程序时。他必须通过页面 A。他填写信息,然后导航到登录页面。现在,一旦用户登录或只是在登录页面中关闭应用程序并重新打开它,用户就会被导航到页面 A,要解决此问题,用户必须关闭应用程序并重新打开它。
有人可以帮我清理一下吗?谢谢!