代码之家  ›  专栏  ›  技术社区  ›  user979331

Xamarin窗体-关闭导航页

  •  0
  • user979331  · 技术社区  · 5 年前

    当我使用以下内容时,我正在尝试关闭当前页面:

    Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
    

    我该怎么做?我试过:

    Application.Current.MainPage.Navigation.PopAsync();
    

    iOS上不支持PopAsync,请使用 导航页面。

    我做错什么了?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Jason    5 年前

    你的 MainPage 是一个 MasterDetail ,所以你需要

    var nav = ((MasterDetailPage)Application.Current.MainPage).Detail.Navigation;
    nav.PopAsync();
    
        2
  •  0
  •   j-petty    5 年前

    await Navigation.PopAsync();
    

    如果您试图从导航页的上下文外部关闭该页,例如在控制器类中,您可以将当前页的导航实例发送到控制器。

    public MyConentPage () {
        var myController = new MyController(Navigation);
    }
    

    然后在控制器内部:

    public MyController (INavigation Navigation) {
        this.Navigation = Navigation;
    }
    
    public async void ClosePage () {
        await Navigation.PopAsync();
    }
    
        3
  •  0
  •   Krunal Bagadia    5 年前

    所以简单的解决方案是使用设置应用程序的Desire页面,或者使用应用程序上下文移动的位置,比如,

    Application.Current.MainPage = new NavigationPage(new NewPage());