1 回答
TA贡献1840条经验 获得超5个赞
首先,为什么要使用如此复杂的语法而不是利用异步等待?
public async void EndAppointement()
{
try
{
await App.ArdaBusinessLogic.AppointmentEnd(_appointment);
_appointmentDetailPage.IsDirty = true;
await App.MasterNavigationPage.Navigation.PopModalAsync();
}
catch (Exception exception)
{
await App.MasterNavigationPage.Navigation.PopModalAsync();
await App.ShowErrorPageAsync(exception);
}
}
二、看XF源码:
protected override async Task<Page> OnPopModal(bool animated)
{
Page modal = ModalStack[ModalStack.Count - 1];
if (_owner.OnModalPopping(modal))
{
_owner.OnPopCanceled();
return null;
}
Page result = await base.OnPopModal(animated);
result.Parent = null;
_owner.OnModalPopped(result);
return result;
}
您的模态堆栈似乎混乱了:这意味着您正在尝试弹出不在堆栈上的页面。您确定您处于模态页面吗?也许使用PopAsync而不是PopModalAsync.
- 1 回答
- 0 关注
- 65 浏览
添加回答
举报