gpt4 book ai didi

swift - 我如何将 "popToRootController"与 "pushController"结合起来

转载 作者:行者123 更新时间:2023-11-28 14:47:39 25 4
gpt4 key购买 nike

我的 WatchApp 中有 3 个 InterfaceControllers:

应用程序在 StartInterfaceController 中启动,如果用户触摸按钮,则导航到“Target1”InterfaceController。

通过按下“Target1”InterfaceController 中的按钮,我想以编程方式导航回“开始”,然后打开“Target2”

enter image description here

我试过这段代码:

在“目标 1”中:

@IBAction func navigateToTarget2() {
navigateBack = true // navigateBack is a global variable
popToRootController()
}

在“开始”中:

override func didAppear() {
if navigateBack {
navigateBack = false
pushController(withName: "Target2", context: nil)
}
}

第一部分运行良好。按下“目标”中的按钮导航回“开始”。 start 中的代码已执行(我已在调试器中检查过)但导航到“Target2”的导航不起作用。我还检查了 pushController 操作中目标的名称。它具有正确的名称。

最佳答案

push 和 pop 的组合不会一次完成。

或者,您可以做的是,当您按下“开始”按钮时,通过在无上下文的情况下按下“开始” Controller 转到“Target1”。当您按下“Target1” Controller 上的按钮时,您可以调用 reloadRootControllersWithNames 并将一些上下文传递到那里并创建一个条件,即从“Target1”按钮导航到“Target2”。

示例:这不是实际代码。

class StartVC: WKInterfaceController {

func buttonAction() {
self.push("TargetOneVC", context: nil)
}

}

class TargetOneVC: WKInterfaceController {

func buttonAction() {
WKInterfaceController.reloadRootControllersWithNames(["TargetTwoVC"],
contexts: [isFromTargetOne: true])
}
}

class TargetTwoVC: WKInterfaceController {

}

关于swift - 我如何将 "popToRootController"与 "pushController"结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50119957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com