我正在使用Xamarin Forms开发一个小型应用程序,该应用程序需要签名用户,因此App构造函数中的MainPage设置为LoginPage。
在用户登录后,我将MainPage更改为AppShell,该部分运行平稳,但是每次恢复应用程序时,我都需要将用户重定向到LoginPage。
我的代码如下:
App.xaml.cs
public App()
{
InitializeComponent();
DependencyService.Register<RestDataStore>();
DependencyService.Register<CredentialsService>();
MainPage = new LoginPage();
}
在LoginPage的ViewModel中重定向到AppShell
public void OnSubmit()
{
...
Application.Current.MainPage = new AppShell();
}
App.xaml.cs
protected override void OnResume()
{
MainPage = new LoginPage();
}
当我进行这样的页面更改时,什么也不会发生。
在恢复应用程序之后,还有其他方法可以更改MainPage吗? 我在做什么错了?
答案 0 :(得分:0)
您是否在应用中使用MasterDetailPage?
如果是这样:
public static void SetDatailPage(Page page)
{
if (App.Current.MainPage is MasterDetailPage)
{
var masterPage = (MasterDetailPage)App.Current.MainPage;
masterPage.Detail = new NavigationPage(page);
}
}
和
protected override void OnResume()
{
// Handle when your app resumes
SetDatailPage(new LoginPage());
}
答案 1 :(得分:0)
这对我有用:
protected override async void OnResume()
{
await MainPage.Navigation.PushModalAsync(new NoConnectionPage());
}
唯一的缺点是它将是模态的。