防止解雇模态WKInterfaceController

时间:2016-03-18 13:50:37

标签: ios modal-dialog watchkit modalviewcontroller wkinterfacecontroller

有没有办法防止用户解雇模态控制器?

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

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

3 个答案:

答案 0 :(得分:2)

有一种使用reloadRootControllers解决此问题的方法。当您在情节提要中命名为reloadRootControllers(withNamesAndContexts:)的名称来调用WKInterfaceController时,其效果与模态呈现该控制器的效果类似。但是,由于它现在是 root 控制器,因此它没有取消按钮。我不是很喜欢,但是确实可以完成工作。

答案 1 :(得分:1)

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

enter image description here Preview of modal view

答案 2 :(得分:0)

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

由于您的代码未被问及是否应该发生,但只知道它正在发生,因此无法拦截或取消该操作。 WKInterfaceController documentation简要介绍了这一点。

  

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

你能做什么?

don't know when the Cancel title is tapped a hack which "hides" the Cancel title时,有Human Interface Guideline

这可能会让那些可能想知道如何解雇模式的用户感到困惑,或误导其他人认为该模式无法被解雇。

HIG推荐什么?

规避https://plnkr.co/edit/J8qc8221kal11BcPbALj?p=options可能会降低整个用户体验。

  

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

如果

,某些用户可能会感到沮丧或恼火
  • 没有明显的取消方式,或

  • 经过多次取消后,模态再次出现。

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