【发布时间】:2017-06-15 15:23:32
【问题描述】:
在 Xamarin Forms 项目中,我创建了一个 TabbedPage,在其中添加了 5 个子导航页。
{
Children.Add(new NavigationPage(new A()));
Children.Add(new NavigationPage(new B()));
Children.Add(new NavigationPage(new C()));
Children.Add(new NavigationPage(new D()));
Children.Add(new NavigationPage(new E()));
}
当我从选项卡 A 手动单击选项卡 B 时; B 的 OnAppearing 方法按预期调用。但是,当我使用
以编程方式更改选项卡时tabbedPage.CurrentPage = tabbedPage.Children[index]
然后 B 的 OnAppearing 方法永远不会被调用。这发生在 UWP 上。
【问题讨论】:
-
好像我有类似的问题,你每个页面上的视图模型是否执行非本地数据?
-
为此我们没有使用MVVM,我们只是简单地使用MVC。当我们手动更改选项卡时,将调用所选选项卡的 onappearing 方法,但是当我们以编程方式更改选项卡时,不会为所选选项卡调用 onappearing 方法
-
我已将此行代码(
this.CurrentPage = this.Children[2];)放在TabbedPage构造函数方法中。但是我无法在我身边重现您的问题。这是我的code sample。请检查。 -
@NicoZhu-MSFT 谢谢,您的代码在这种情况下工作。在应用启动时,它会选择第三页并调用其 OnAppearing。但是我修改了你的代码来复制我的场景。在第一页上有一个按钮“单击我”我输入代码以在此按钮单击时显示第三页。单击按钮时,用户会从 First 重定向到第三页,但根本不会调用 Third 的 OnAppearing() 方法。请检查。 (让我知道我是否可以在您的仓库中提交我的更改供您测试)
-
@NicoZhu-MSFT 您有机会寻找问题吗?
标签: tabs uwp xamarin.forms tabbedpage