gpt4 book ai didi

ios - 获取堆栈中最顶层的 View Controller 而不循环

转载 作者:行者123 更新时间:2023-11-30 14:14:54 24 4
gpt4 key购买 nike

我无法循环遍历 View Controller ,因为如果当前 View Controller 是特定的,我只需要调用一种方法。如果我循环遍历,那么所有方法都会被调用。我一直在使用这段代码:

if let viewControllers = navigationController?.viewControllers {
for viewController in viewControllers {
// some process
if viewController.isKindOfClass(MyViewController) {
println("\(viewController) yes it is")
} else {
self.navigationController?.popViewControllerAnimated(true)
}
}
}

本质上,如果当前 View 位于特定 View Controller 上,我不想 popViewControllerAnimated 。然而,由于循环,它无论如何都会被调用。如何只返回当前 View Controller 而不进行此循环?

最佳答案

您可以使用以下 Obj-C 方法获取第一个和最后一个:

[self.navigationController.viewControllers lastObject]; 
[self.navigationController.viewControllers firstObject];

这些方法在 Swift 中不可用,但可以通过扩展 Array 轻松实现,以便您可以在项目中重用它。

extension Array {
var lastObject: T {
return self[self.endIndex - 1]
}
}

关于ios - 获取堆栈中最顶层的 View Controller 而不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313735/

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