Как перейти на страницу при вызове резюме в app.xaml.cs для mvvm в приложении xamarin forms - PullRequest
0 голосов
/ 04 февраля 2020

У меня проблема с навигацией. Когда я нажимаю кнопку главного экрана устройства и возвращаюсь в приложение, я получаю домашний экран приложения вместо пин-страницы. В идеале он должен показать пин-страницу и нормально работать с кнопкой возврата устройства. Метод OnStart () имеет навигацию c, но он не работает с методом OnResume (). Нужно ли go к каждому из cs-файлов проекта платформы и добавлять туда навигацию, как для Android метода OnRestart () / OnResume ()? Если кто-нибудь знает решение, пожалуйста, дайте мне знать

1 Ответ

1 голос
/ 05 февраля 2020

Чаще всего при написании вашего приложения Xamarin с Prism у вас будет что-то вроде:

protected override void OnInitialized()
{
    NavigationService.NavigateAsync("SomePage");
}

OnInitialized вызывается каждый раз, когда вызывается ctor приложения. Это важное соображение здесь, потому что это означает, что всякий раз, когда собственная платформа захламляет приложение в фоновом режиме или иным образом обновляет приложение, вызывая OnCreate в вашем MainActivity или FinishedLaunching в вашем AppDelegate, тогда OnInitialized будет вызывать сброс стека навигации вашего приложения в SomePage.

Однако вы можете переопределить OnStart / OnResume в PrismApplication и использовать любые бизнес-логи c, которые вам нужны, чтобы определить, куда перемещаться и как вы можете восстановить приложение.

public override void OnStart()
{
    NavigationService.NavigateAsync("MainPage");
}

public override void OnResume()
{
    if(someCondition)
    {
        NavigationService.NavigateAsync("SomePage");
    }
    else
    {
        NavigationService.NavigateAsync("AnotherPage");
    }
}
...