【问题标题】:How to tell parent to pop current modal and redirect to NavigationPage如何告诉父母弹出当前模式并重定向到 NavigationPage
【发布时间】:2018-02-03 16:00:44
【问题描述】:
我有一个 Xamarin 应用程序,其中我的 MainPage 是一个导航页(内容页)。在此导航页面中,我打开模式。
在我在 MainPage 中打开的模式中,我想使用 Navigation.PushAsync 但这需要 NavigationPage 上下文,而模式页面不是。
我读到流程是:
- 告诉父/调用者弹出当前可见模式
- 告诉家长/来电者
导航到我想要的页面,使用
Navigation.PushAsync
但是,您如何做到这一点?你如何告诉父母这样做并实际进行导航?
【问题讨论】:
标签:
xamarin
xamarin.forms
【解决方案1】:
我会使用事件处理程序来完成这项工作:
这是一个示例代码:
应用程序.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);
}
}
}
我还没有等待异步方法,但最好这样做,这只是一个例子,但我认为你应该明白这一点..