如何告诉父级弹出当前模态并重定向到NavigationPage

时间:2017-08-25 14:54:10

标签: xamarin xamarin.forms

我有一个Xamarin应用程序,我的MainPage是导航页面(内容页面)。在这个导航页面中,我打开了模态。

在我在MainPage中打开的模态中,我想使用Navigation.PushAsync但这需要一个模态页面不是的NavigationPage上下文。

我已经读到流程将是:

  1. 告诉父母/来电者弹出当前可见的模态
  2. 告诉父母/来电者 使用Navigation.PushAsync
  3. 导航到我想要的页面

    但是,你是怎么做到的?你如何告诉家长这样做并实际进行导航?

1 个答案:

答案 0 :(得分:1)

我会使用事件处理程序完成这项工作:

以下是一个示例代码: App.cs

public class App : Application
{
    public App()
    {

        MainPage = new NavigationPage(new PushedNavigationPage());
    }    

}

PushedNavigationPage页面:

public class PushedNavigationPage: ContentPage
{       

   public PusehdNavigationPage()
   {


   }        

   public void DoPushModalOnButtonClick()
   {
      var pushedModalPage = new PushedModalPage();
      pushedModalPage.DoPush += HandleDoPush;
      Navigation.PushModalAsync(pushedModalPage);
   }

   private void HandleDoPush(object sender, EventArgs e)
   {
       Navigation.PopModalAsync();
       Navigation.PushAsync(//the page you want to push)
   }
}

PushedModalPage

public class PushedModalPage : ContentPage
{
   public event EventHandler DoPush;  
    //call this on putton click or whenever you want
    private void OnDoPush()
    {
        if (DoPush!= null)
        {
            DoPush(this, EventArgs.Empty);
        }
    }     
}

我没有等待异步方法,但最好这样做,这只是一个例子,但我认为你应该明白这一点......