簡體   English   中英

在 Xamarin iOS 中彈出模態頁面時出現不工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM