从 OnResume() 导航到默认页面
Navigate to default page from OnResume()
在 Xamarin 表单中,OnResume 事件处理程序位于应用程序 class 上,它不是 NavigationPage,因此您无法在 OnResume 中进行任何导航。当我的应用程序恢复时,如果它已经睡了超过 30 分钟,我希望它回到它的主页,而不是恢复到它进入睡眠状态的页面。我在 OnResume 中有 30 分钟的陷阱,但我无法进行导航。任何人都可以建议这样做的方法吗?
默认情况下,在表单应用程序中,您存储的是 MainPage
,在本例中应该是 NavigationPage
。
public class App : Application
{
public App ()
{
// The root page of your application
MainPage = new NavigationPage {
因此您可以使用它来获取 Navigation
对象。
protected override async void OnResume ()
{
var nav = MainPage.Navigation;
// you may want to clear the stack (history)
await nav.PopToRootAsync (true);
// then open the needed page (I'm guessing a login page)
await nav.PushAsync(new LoginPage());
}
尝试将您的 OnResume 方法更新为如下所示:
protected async override void OnResume ()
{
await MainPage.Navigation.PopToRootAsync (true);
}
在 Xamarin 表单中,OnResume 事件处理程序位于应用程序 class 上,它不是 NavigationPage,因此您无法在 OnResume 中进行任何导航。当我的应用程序恢复时,如果它已经睡了超过 30 分钟,我希望它回到它的主页,而不是恢复到它进入睡眠状态的页面。我在 OnResume 中有 30 分钟的陷阱,但我无法进行导航。任何人都可以建议这样做的方法吗?
默认情况下,在表单应用程序中,您存储的是 MainPage
,在本例中应该是 NavigationPage
。
public class App : Application
{
public App ()
{
// The root page of your application
MainPage = new NavigationPage {
因此您可以使用它来获取 Navigation
对象。
protected override async void OnResume ()
{
var nav = MainPage.Navigation;
// you may want to clear the stack (history)
await nav.PopToRootAsync (true);
// then open the needed page (I'm guessing a login page)
await nav.PushAsync(new LoginPage());
}
尝试将您的 OnResume 方法更新为如下所示:
protected async override void OnResume ()
{
await MainPage.Navigation.PopToRootAsync (true);
}