Bur*_*aba 5 xamarin.ios xamarin.android xamarin xamarin.forms
我有一个登录页面,用户在其中输入用户名和密码,然后用户被重定向到他的帐户页面,但是当我按后退按钮时,它会将我带回到登录页面。我该如何防止这种情况发生。\n代码片段:
\n\npublic Login ()\n{\n if (App.IsUserLoggedIn == false)\n {\n InitializeComponent();\n }\n else\n {\n Navigation.PushAsync(new NavigationPage(new LoginIndexPage()));\n }\n}\n\nprivate async void LoginButton_Clicked(object sender, EventArgs e)\n{\n var user = new Xcore.Users.csUser\n {\n RefNo = referansnoEntry.Text,\n Username = usernameEntry.Text,\n Password = passwordEntry.Text\n };\n var isValid = IsCorrectLogin(user);\n if (isValid)\n {\n App.IsUserLoggedIn = true;\n await Navigation.PushAsync(new NavigationPage(new LoginIndexPage()));\n }\n else\n {\n showError.Text = "*Hatal\xc4\xb1 giri\xc5\x9f";\n passwordEntry.Text = string.Empty;\n usernameEntry.Text = string.Empty;\n referansnoEntry.Text = string.Empty;\n }\n}\nprivate bool IsCorrectLogin(Xcore.Users.csUser user)\n{\n return user.RefNo == Xcore.Users.RegInfo.RefNo \n && user.Username == Xcore.Users.RegInfo.Username \n && user.Password == Xcore.Users.RegInfo.Password;\n}\n\n\npublic LoginIndexPage()\n{\n if (App.IsUserLoggedIn == true)\n {\n InitializeComponent();\n }\n else\n {\n Navigation.PushAsync(new NavigationPage(new Login()));\n }\n}\nprotected override void OnAppearing()\n{\n base.OnAppearing();\n showuserName.Text = Xcore.Users.RegInfo.Username;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n当我登录时,它会出现在 LoginIndexPage 上。
\n与 App Pack 提到的类似,导航堆栈中不应该有 LoginPage。无需尝试删除它,只需将下一页设置为根页面即可。
不要将下一页推入堆栈,而是将其设置为:
Application.Current.MainPage = <your next page>
另外,我不会导航到页面构造函数中的页面。这确实不是一个好的做法。
小智 1
尝试在您的 LoginIndexPage 中使用此代码。
protected override bool OnBackButtonPressed()
{
return true; // true prevent navigation back and false to allow
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2510 次 |
| 最近记录: |