Apple Watch:从基于页面的导航呈现模态屏幕后,状态栏不可见

时间:2015-03-27 22:11:52

标签: ios watchkit apple-watch

当我在基于页面的导航中从页面呈现模态屏幕时,整个屏幕向上移动并且状态栏不再可见。
这是一个问题的GIF:

enter image description here

我正在使用xCode 6.2版本 这在xCode 6.2 Beta 4中没有发生..
我不确定这是否是模拟器问题,或者这实际上也会在真实设备上发生。

有没有人有同样的问题?有解决方法吗?

我向苹果报告了一个错误(20109240)并且它被标记为(19862945)的副本,并且它仍然是打开的。
提前致谢

1 个答案:

答案 0 :(得分:7)

这是最终版本中的一个已知问题,它在两种情况下表现出来:

  1. 在现有的分页模态控制器上呈现第二个模态控制器(分页或单个)
  2. 使用Force Touch通过分页模式控制器显示菜单时
  3. 这已在Apple开发者论坛中讨论过,我所听到的唯一解决方法是我在我的应用中使用的解决方法。遗憾的是,没有简单的代码可以解决问题,因此我将描述这种方法(我认为这种方法很混乱,但可行)。

    首先,您需要跟踪界面控制器演示。我有一个框架,但你可能需要自己动手。当子接口控制器的willActivate连续两次调用时(换句话说,没有调用不同的子接口控制器),您可以假设模态在其上面被呈现/解除。

    您的演示/父级控制器可以通知所有孩子模态菜单错误已经发生,并且这些子控制器可以使用自己的取消/关闭按钮取消隐藏替换状态栏。通过一些工作,您可以重新创建具有相同行为的标准状态栏的像素完美版本。

    最后的转折是检测Watch应用程序暂停的时间,然后恢复。在这种情况下,willActivate也会被调用两次。如果您不处理这种情况,您最终会取消隐藏替换状态栏并同时在屏幕上显示两个。不是很好的场景。

    实现这一点非常棘手,但确实有效。我只希望我有一个可以注入的简单代码示例。

    更新:我将部分解决方法代码推送到GitHub: https://github.com/mikeswanson/JBInterfaceController