【问题标题】:How to navigate to page when on resume is called in app.xaml.cs for mvvm in xamarin forms app在 app.xaml.cs 中为 xamarin 表单应用程序中的 mvvm 调用简历时如何导航到页面
【发布时间】:2020-05-20 04:28:01
【问题描述】:

我遇到了导航问题。当我单击设备的主屏幕按钮并返回应用程序时,我得到应用程序主屏幕而不是 pin 页面。理想情况下,它应该显示 pin 页面,并且它与设备的后退按钮一起工作正常。 OnStart() 方法具有 navigationasync 但同样不适用于 OnResume() 方法。 我是否必须转到每个平台项目 cs 文件并在那里添加导航,例如 Android OnRestart()/OnResume() 方法? 如果有人知道解决方案,请告诉我

【问题讨论】:

    标签: xamarin.forms navigation prism


    【解决方案1】:

    在使用 Prism 编写 Xamarin 应用程序时,最常见的情况是:

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

    每次调用 App 的 ctor 时都会调用 OnInitialized。这是一个重要的考虑因素,因为这意味着任何时候本机平台在后台删除应用程序或通过调用 MainActivity 中的 OnCreate 或 AppDelegate 中的 FinishedLaunching 来刷新应用程序,然后将调用 OnInitialized 将应用程序的导航堆栈重置为SomePage.

    但是,您可以覆盖 PrismApplication 中的 OnStart/OnResume 并使用您需要的任何业务逻辑来确定导航位置以及您可能希望如何恢复应用程序。

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

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多