繁体   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