gpt4 book ai didi

ios - 双返回到上一个 View - Swift

转载 作者:行者123 更新时间:2023-11-28 13:58:34 24 4
gpt4 key购买 nike

我是 IOS 和 Swift 的新手,所以不要判断解决方案是否简单。

我有三个 ViewControllers,比如 A、B 和 C。

我从A -> NavigationController -> B -> NavigationController -> C开始

在特定情况下,我需要从 C 返回 A 而看不到 B。有什么办法可以做到这一点?

也许改变父导航 Controller ?也许我可以打印每个当前 View 的堆栈? - 这真的很有帮助。我试着一个一个地关闭 C 和 B View ,它起作用了,但我们可以暂时看到 B View ——所以这对我来说不是一个解决方案。P.s:我正在使用模态类型在 Controller 之间切换。

enter image description here

最佳答案

如果 A 总是第一个 View Controller ,你可以这样做:

viewcontrollerC.navigationController?.popToRootViewController(animated: true)

此方法将堆栈弹出到第一个 View Controller ,而不显示中间 View Controller

如果 A 不是第一个 viewController,你可以这样做:

viewcontrollerC.navigationController?. popToViewController(viewControllerA, animated: true)

如果您没有对 viewControllerA 的引用,请在堆栈中搜索它:

let viewControllerA: UIViewController? 

for (let vc in (self.navigationController?.viewControllers ?? [])) {
//adust the test to find the appropriate controller
if vc.isKindOf(ViewControllerAClass.self) {
viewControllerA = vc
break
}
}

if let viewControllerA = viewControllerA {
self.navigationController?.popToViewController(viewControllerA, animated: true)
}

来源:https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621871-poptoviewcontroller

关于ios - 双返回到上一个 View - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53727118/

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