![](/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.