【发布时间】:2020-05-12 16:20:30
【问题描述】:
我有 4 个子标签页(4 个标签页),我想覆盖后退按钮,以便在您按下它时始终设置第一页。我尝试了几种方法,这对我来说似乎最有意义,但它不起作用 - tabbedPage 始终为空(当我在所有选项卡中覆盖时)
protected override bool OnBackButtonPressed()
{
var tabbedPage = this.Parent as TabbedPage;
tabbedPage.CurrentPage = tabbedPage.Children[1];
return base.OnBackButtonPressed();
}
我试图像这样覆盖 TabbedPage Parent 中的这个后退按钮:
protected override bool OnBackButtonPressed()
{
if(CurrentPage == FirstPage)
{
return base.OnBackButtonPressed();
}
CurrentPage = FirstPage;
return true;
}
但它总是关闭我的应用程序。知道为什么 tabbedPage 对我来说是空的吗?
【问题讨论】:
-
可能是因为
this.Parent不能转换为TabbedPage。当使用as时,失败的转换返回null而不是抛出异常。调试它,看看this.Parent到底是什么。 -
是的,我当然不能转换为
TabbedPage。我必须做'this.Parent.Parent,它正在铸造它应该如何。问题是我的孩子是 NavigationPage,这就是我不能投射它的原因。谢谢! -
现在可以用了吗?你可以检查我的答案。
标签: c# xamarin xamarin.forms