有没有办法防止用户关闭模态控制器?
我认为在要求用户打开 iPhone 对应界面或在那里执行某些操作时想要“阻止”主 Watch App 界面是很常见的。
我目前的解决方案是在控制器被解雇但笨拙时再次呈现控制器。
有没有办法防止用户关闭模态控制器?
我认为在要求用户打开 iPhone 对应界面或在那里执行某些操作时想要“阻止”主 Watch App 界面是很常见的。
我目前的解决方案是在控制器被解雇但笨拙时再次呈现控制器。
有一种有点笨拙的方法可以使用reloadRootControllers
. 当您使用您在情节提要中命名reloadRootControllers(withNamesAndContexts:)
的名称进行调用时WKInterfaceController
,它与以模态方式呈现该控制器具有类似的效果。但是,由于它现在是根控制器,因此它没有取消按钮。我真的不喜欢这个,但它确实完成了工作。
请注意,此方法自 watchOS 4 以来已弃用。 有关 reloadRootControllers(withNamesAndContexts:) 的 Apple 文档
您无法阻止模态界面控制器被解除,因为系统会在点击标题时自动解除它。
由于没有询问您的代码是否应该发生,而是只知道它正在发生,因此无法拦截或取消该操作。WKInterfaceController文档简要介绍了这一点。
当用户点击标题字符串时,WatchKit 会自动关闭模态界面而不采取任何进一步的操作。
你能做什么?
虽然您不知道何时点击 Cancel 标题,但有一个“隐藏” Cancel 标题的 hack。
这可能会使可能想知道如何解除模态的用户感到困惑,或者误导其他人认为无法解除模态。
HIG有什么建议?
绕过人机界面指南可能会降低整个用户体验。
模态表的左上角是为关闭按钮保留的,它会关闭界面。
一些用户可能会感到沮丧或恼火,如果
没有明显的方法可以取消,或者
模态在反复被取消后再次出现。
由于用户希望能够关闭模式,也许您可以允许他们这样做,然后简单地在呈现界面控制器中显示某种形式的提醒(登录或启用权限)。