我的Xamarin表单Application
的{{1}}设置为
MainPage
其中new NavigationPage(new CarsMasterDetailPage())
。
在CarsMasterDetailPage : MasterDetailPage
构造函数中,我将CarsMasterDetailPage
属性设置为Master
,并将new CarsMasterPage()
属性设置为Detail
。 new CarsDetailPage()
和CarsMasterPage
都扩展了CarsDetailPage
。
主页包含一个汽车列表和一个按钮,该按钮具有执行以下操作的事件处理程序:
ContentPage
await Navigation.PushAsync(new AddCar());
页面上有一个带有事件处理程序的按钮,该按钮执行以下操作:
AddCar
当我第一次运行该应用程序时,将调用母版页的await Navigation.PopAsync();
方法。导航第一次弹出回到主页时,再次调用OnAppearing
。但是,随后的导航推送和弹出窗口却没有。
我可以通过在母版页上添加添加汽车页面完成时调用的委托来解决这个问题,但是由于有一些页面事件可以处理,所以这感觉很骇人。有谁知道为什么它不起作用?
答案 0 :(得分:1)
就我而言,我是这样做的,并且一切正常: 我的主页:
MainPage = new MasterDetailPage {
Master = new MasterDetailPage1Master(),
Detail = new MyNavigationPage(new MainPageLinearList(appType))
};
所以关键是要在DetailPage中使用NavigationPage。之后,一切正常。
答案 1 :(得分:0)
navigationPage.Popped += OnPopped;
...
void OnPopped(object sender, NavigationEventArgs e)
{
var currentPage = (sender as NavigationPage).CurrentPage;
var removedPage = e.Page;
...
}