为什么 "WKInterfaceController" 中的方法 "willActivate" 已经为下一页调用了?

Why is method "willActivate" in "WKInterfaceController" already called for the next page?

我刚刚意识到 WKInterfaceController 的方法 willActivate 已经为下一页调用了(不仅仅是当前页)。

这是新的 "feature" 还是错误?我在 Apple 的 WatchKit 文档中找不到任何相关信息。

如何避免在只显示第 1 页时自动初始化第 2 页? (我试图找到一种方法来确定当前显示的页码或标题,但尚未找到解决方案。请参阅 this question。)

(我已经将我的 Apple Watch 更新到 1.01 版,我使用 Xcode 6.3.2 版。)

Watch OS 1.0.1 引入了一项更改,即在基于页面的布局中为 "next" 控制器连续调用 willActivatedidDeactivate。大概是为了让下一页有机会在显示之前更新它的界面。

不幸的是,正如您所指出的,这使得很难(如果不是不可能)确定在屏幕上查看了哪个界面控制器。这些更改还与 willActivatedidDeactivate 的记录行为冲突,使其更加混乱。

您可以在 Watch OS 1.0.1 Controller Life Cycle Changes 中阅读有关此更改的更多信息。