4

我有一个正在尝试自定义的选项卡式页面 Xamarin 表单应用程序。我正在从仅 IO 的应用程序迁移到所有平台。在 iOS 中,我使用了几个函数 ViewDidDisappear()、ViewDidAppear() 和 ViewDidLoad();

今天的应用程序按如下方式加载选项卡式页面:

{
    Children.Add(new MyPage1());
    Children.Add(new MyPage2());
    Children.Add(new MyPage3());
    Children.Add(new MyPage4());
}

每个子页面声明如下,均继承自 ContentPage。

class MyPage1: ContentPage
{
        …
        protected override void OnAppearing()
        {
            base.OnAppearing();
            Content = SomeContentPage;
        }
}

我遇到的问题是,当当前仅显示 MyPage1 时,所有页面都调用了 OnAppearing()。我需要知道每个子页面何时加载。

我已阅读有关消息中心的信息,但我不确定如何在这种特殊情况下实现它。消息中心会是最好的解决方案吗?

如何实施一种解决方案,让我知道显示了四个页面中的哪一个?

4

2 回答 2

2

可能的解决方法是覆盖TabbedPage中的 OnCurrentPageChanged。

protected override void OnCurrentPageChanged()
{
    base.OnCurrentPageChanged();

    if ( CurrentPage is YourContentPage page)
    {
        page.YourCustomCode();
    }
}
于 2018-12-14T10:09:32.190 回答
-1

在主 TabbedPage 上,添加子页面后,将 CurrentPage 属性设置为 null 应该可以解决问题。

于 2018-02-21T06:03:02.597 回答