1

有没有办法防止用户关闭模态控制器?

我认为在要求用户打开 iPhone 对应界面或在那里执行某些操作时想要“阻止”主 Watch App 界面是很常见的。

我目前的解决方案是在控制器被解雇但笨拙时再次呈现控制器。

4

3 回答 3

2

有一种有点笨拙的方法可以使用reloadRootControllers. 当您使用您在情节提要中命名reloadRootControllers(withNamesAndContexts:)的名称进行调用时WKInterfaceController,它与以模态方式呈现该控制器具有类似的效果。但是,由于它现在是控制器,因此它没有取消按钮。我真的不喜欢这个,但它确实完成了工作。

请注意,此方法自 watchOS 4 以来已弃用。 有关 reloadRootControllers(withNamesAndContexts:) 的 Apple 文档

于 2018-10-04T07:00:25.580 回答
1

诀窍是使模态屏幕全屏并更改主要组的插入顶部值。

在此处输入图像描述 模态视图预览

于 2021-01-18T05:35:41.173 回答
0

您无法阻止模态界面控制器被解除,因为系统会在点击标题时自动解除它。

由于没有询问您的代码是否应该发生,而是只知道它正在发生,因此无法拦截或取消该操作。WKInterfaceController文档简要介绍了这一点。

当用户点击标题字符串时,WatchKit 会自动关闭模态界面而不采取任何进一步的操作

你能做什么?

虽然您不知道何时点击 Cancel 标题,但有一个“隐藏” Cancel 标题的 hack

这可能会使可能想知道如何解除模态的用户感到困惑,或者误导其他人认为无法解除模态。

HIG有什么建议?

绕过人机界面指南可能会降低整个用户体验。

模态表的左上角是为关闭按钮保留的,它会关闭界面。

一些用户可能会感到沮丧或恼火,如果

  • 没有明显的方法可以取消,或者

  • 模态在反复被取消后再次出现。

由于用户希望能够关闭模式,也许您可​​以允许他们这样做,然后简单地在呈现界面控制器中显示某种形式的提醒(登录或启用权限)。

于 2016-03-18T16:54:35.303 回答