有没有在Swift中查看View Controller Stack?
希望我可以阅读某种数组或println()
。
答案 0 :(得分:1)
您需要滚动一些代码来遍历对象图,但这是一个开始。
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);
}
}
答案 1 :(得分:0)
它不漂亮,但它应该做的伎俩;)
只需在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
}
}