Xamarin 为什么';t Navigation.PopAsync()是否触发基础页面的OnAppearing方法?
我的Xamarin表单Xamarin 为什么';t Navigation.PopAsync()是否触发基础页面的OnAppearing方法?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我的Xamarin表单应用程序的主页设置为 new NavigationPage(new CarsMasterDetailPage()) 其中CarsMasterDetailPage:MasterDetailPage 在CarsMasterDetailPage构造函数中,我将Master属性设置为new CarsMasterPage(),将Detail属性设置为new CarsDetailPage()。CarsMasterPage和CarsDetailPageextendContentPage
应用程序
的主页
设置为
new NavigationPage(new CarsMasterDetailPage())
其中CarsMasterDetailPage:MasterDetailPage
在CarsMasterDetailPage
构造函数中,我将Master
属性设置为new CarsMasterPage()
,将Detail
属性设置为new CarsDetailPage()
。CarsMasterPage
和CarsDetailPage
extendContentPage
母版页包含一个汽车列表和一个按钮,该按钮具有一个事件处理程序,可执行以下操作:
await Navigation.PushAsync(new AddCar());
await Navigation.PopAsync();
AddCar
页面有一个带有事件处理程序的按钮,该按钮执行以下操作:
await Navigation.PushAsync(new AddCar());
await Navigation.PopAsync();
当我第一次运行应用程序时,母版页的OnAppearing
方法被调用。当导航第一次弹出到母版页时,会再次调用出现的on
。不过,后续的导航推送和弹出不会
我可以通过在母版页上添加一个代理来解决这个问题,添加汽车页面会在完成后调用该代理,但这感觉有点不对劲,因为有页面事件来处理这个问题。有人知道它为什么不起作用吗?在我的情况下,我就是这样做的,一切正常: 我的主页:
MainPage = new MasterDetailPage {
Master = new MasterDetailPage1Master(),
Detail = new MyNavigationPage(new MainPageLinearList(appType))
};
因此,关键是在DetailPage中使用NavigationPage。之后一切正常。订阅活动:
在任何页面弹出后发送自定义消息或创建自定义事件处理程序来完成您的工作。这最终让我达到了目的,谢谢。我必须删除
NavigationPage
包装MasterDetailPage
,然后在NavigationPage
中包装Master和detailpage。