【发布时间】:2014-11-20 15:10:05
【问题描述】:
是否有在 Swift 中查看 View Controller Stack 的方法?
希望有某种我可以阅读的数组或println()。
【问题讨论】:
标签: swift uiviewcontroller stack
是否有在 Swift 中查看 View Controller Stack 的方法?
希望有某种我可以阅读的数组或println()。
【问题讨论】:
标签: swift uiviewcontroller stack
您需要滚动一些代码来遍历对象图,但这是一个开始。
keyWindow 属性的密钥窗口。rootViewController属性获取根视图控制器。childViewControllers 数组的内容。包含的视图控制器可能有自己的子视图控制器。从第一个 childViewControllers 属性中转储视图控制器可以像这样工作(这是我的想法,未经测试):
func dumpViewControllers(controllers:[AnyObject], level:UInt = 0)
{
if controllers.count == 0 { return }
for controller in controllers as [UIViewController]
{
for var i = 0; i < level; i++ { print '>' };
println(" " + toString(controller));
dumpViewControllers(controller.childViewControllers, level:level + 1);
}
}
【讨论】:
它不漂亮,但它应该可以解决问题;)
只需在您的 rootViewController 上调用 recursiveViewControllersDescription() 即可获取带有 viewControllers 层次结构的字符串
extension UIViewController {
func recursiveViewControllersDescription() -> String {
return recursiveChildViewControllersLevel(0)
}
func recursiveChildViewControllersLevel(level: Int) -> String {
var string = String()
for var i = 0; i < level; i++ {
string += "\t"
}
string += self.description
string += "\n"
for viewController in self.childViewControllers as [UIViewController] {
string += viewController.recursiveChildViewControllersLevel(level + 1)
}
return string
}
}
【讨论】: