6

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

4

3 回答 3

18

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

presentControllerWithName("NewInterfaceController", context: nil)

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

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

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

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

于 2015-06-29T07:09:05.637 回答
1

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

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

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

于 2015-06-04T11:53:19.280 回答
0

这是simbesi.com在 watchOS 7/Swift 5 中的回答。

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

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

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

WKInterfaceController.reloadRootControllers(
    withNamesAndContexts: [
        (
            name: "NewInterfaceController",
            context: "NewInterfaceController" as AnyObject
        )
    ]
)
于 2020-12-21T00:35:26.523 回答