![](/img/trans.png)
[英]Xamarin - execute "OnAppearing()" code only when page loaded
[英]Onappearing not working when modal page is popped in Xamarin iOS
我有一个出现的方法,当页面在 Xamarin iOS 中弹出时不会触发,但在 XamarinZE864DDB629AB8708 中工作正常谁能帮我解决这个问题。 谢谢你。
第 1 页(标签页)
protected override void OnAppearing()
{
base.OnAppearing();
if (CVItems.SelectedItem != null)
CVItems.SelectedItem = null;
}
private async void CVItems_SelectionChangedAsync(object sender, SelectionChangedEventArgs e)
{
var selecteditem = e.CurrentSelection.First() as Item;
var detailPage = new AdPage(selecteditem);
detailPage.BindingContext = selecteditem;
await Navigation.PushModalAsync(detailPage);
}
第 2 页(模态页面)
private async void poppage_Tapped(object sender, EventArgs e)
{
await Navigation.PopModalAsync();
}
当点击集合视图中的项目时,会打开模式页面,然后当我弹回选项卡式页面时,不会触发 onappearing() 方法。
请您展示您的代码示例吗?
您可以尝试以下 try catch 来查看正在发生的任何错误:
public void OnAppearing() //could add a protected override
{
try
{
OnAppearing();
}
catch (Exception Ex)
{
Debug.WriteLine(Ex.Message);
}
}
您可以通过将 Xamarin Forms 的版本更新到最新版本来检查它是否有效。
我已经签入了最新版本的 Xamarin 表单( 5.0.0.1931
)和 iOS( 14.4
),无论TabbedPage
还是ContentPage
(TabbedPage 的子页面),它都按预期工作。
基于此官方示例修改代码进行测试。
第一步:按OnUpcomingAppointments按钮到下一页。
第二步:按Back按钮,然后返回SchedulePage 。
标签页:
public partial class MainPage : TabbedPage
{
public MainPage ()
{
InitializeComponent ();
}
protected override void OnAppearing()
{
base.OnAppearing();
Console.WriteLine("TabbedPage OnAppearing");
}
}
计划页面:
public partial class SchedulePage : ContentPage
{
public SchedulePage ()
{
InitializeComponent ();
}
async void OnUpcomingAppointmentsButtonClicked (object sender, EventArgs e)
{
await Navigation.PushModalAsync (new UpcomingAppointmentsPage ());
}
protected override void OnAppearing()
{
base.OnAppearing();
Console.WriteLine("SchedulePage OnAppearing");
}
}
output:
2021-02-12 11:03:03.800726+0800 TabbedPageWithNavigationPageiOS[5537:75334] TabbedPage OnAppearing
2021-02-12 11:03:03.801024+0800 TabbedPageWithNavigationPageiOS[5537:75334] SchedulePage OnAppearing
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.