【问题标题】:How can I disable the user interaction for the Cancel button of my watchOS interface controller?如何禁用 watchOS 界面控制器的取消按钮的用户交互?
【发布时间】:2015-06-04 11:23:59
【问题描述】:

在我的 Apple Watch 应用中,我的一个界面控制器在左上角有一个取消按钮。就我而言,一旦完成特定操作,我不希望用户返回上一个屏幕,因此我想禁用该取消按钮的用户交互。即使我将标题更改为空字符串,用户交互仍然保持启用状态。

【问题讨论】:

    标签: apple-watch watchos wkinterfacecontroller


    【解决方案1】:

    我们不能禁用后退/取消按钮用户行为,但可以在没有取消按钮的情况下加载控制器。

    presentControllerWithName("NewInterfaceController", context: nil)
    

    presentControllerWithName 这将显示带有取消按钮的控制器。如果我们像下面这样使用将不会得到取消按钮。

    WKInterfaceController.reloadRootControllersWithNames(["NewInterfaceController"], contexts: ["NewInterfaceController"])
    

    reloadRootControllersWithNames 这将使我们的控制器成为根控制器,因此我们不会得到取消按钮。这就是我解决问题的方式。希望对你也有帮助。

    注意:这里的 [ ] 是语法。 exp: ["NewInterfaceController"]

    【讨论】:

    • 'reloadRootControllers' 在 watchOS 4.0 中被弃用:使用 reloadRootPageControllersWithNames。似乎也不再起作用了,因为我仍然看到取消按钮...
    【解决方案2】:

    您不能禁用后退按钮的用户交互。

    但是你可以稍微改变你表达观点的方式来完成你想要的。

    从您的正常视图开始。检查您是否需要向用户显示登录信息。如果您这样做,则以模态方式呈现登录视图。登录结束时关闭模态视图并返回正常视图,没有不必要的后退按钮。

    【讨论】:

    • 那么当登录屏幕可见时,用户可以关闭并查看我的实际控制人,对吗?我认为这对我不起作用..! @pteofil
    • 我可以继续寻找解决方案,但我认为主要问题是手表上的登录不是手表设计用户案例的一部分。
    • 你在 iPhone 应用程序上所做的,是告诉用户它需要登录才能使用应用程序和一个按钮才能登录。如果用户点击登录,您会以模态方式显示登录视图,然后当您关闭它时,您会使用已登录用户的新内容更新视图。
    • 基本上我正在开发业务应用程序,因此也可以在 Apple Watch 中提供登录信息,而您所说的对 iphone 应用程序来说是正确的。但在手表应用程序中,用户不应该看到登录或实际内容屏幕的第一个屏幕。如果你发现任何东西,请分享给我。 @pteofil
    【解决方案3】:

    这是 watchOS 7/Swift 5 中的 simbesi.com's answer

    以模态方式展示新的控制器:

    presentController(withName: "NewInterfaceController", context: nil)
    

    通过替换根控制器来呈现新控制器:

    WKInterfaceController.reloadRootControllers(
        withNamesAndContexts: [
            (
                name: "NewInterfaceController",
                context: "NewInterfaceController" as AnyObject
            )
        ]
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多