我有一个Xamarin应用程序,我的MainPage
是导航页面(内容页面)。在这个导航页面中,我打开了模态。
在我在MainPage中打开的模态中,我想使用Navigation.PushAsync
但这需要一个模态页面不是的NavigationPage上下文。
我已经读到流程将是:
Navigation.PushAsync
但是,你是怎么做到的?你如何告诉家长这样做并实际进行导航?
答案 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);
}
}
}
我没有等待异步方法,但最好这样做,这只是一个例子,但我认为你应该明白这一点......