Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在Swift中查看视图控制器堆栈?_Swift_Uiviewcontroller_Stack - Fatal编程技术网

有没有办法在Swift中查看视图控制器堆栈?

有没有办法在Swift中查看视图控制器堆栈?,swift,uiviewcontroller,stack,Swift,Uiviewcontroller,Stack,是否存在在Swift中查看视图控制器堆栈的方法 希望我能读到某种数组,或者println()您需要滚动一些代码来遍历对象图,但这里是一个开始 首先,您需要使用keyWindow属性中的键窗口 接下来通过rootViewController属性获取根视图控制器 最后,递归地检查结果的childViewControllers数组的内容。包含的视图控制器可能有自己的子视图控制器 从第一个childViewControllers属性转储视图控制器可能会像这样工作(这是我的想法,未经测试): func d

是否存在在Swift中查看视图控制器堆栈的方法


希望我能读到某种数组,或者
println()

您需要滚动一些代码来遍历对象图,但这里是一个开始

  • 首先,您需要使用
    keyWindow
    属性中的键窗口
  • 接下来通过
    rootViewController
    属性获取根视图控制器
  • 最后,递归地检查结果的
    childViewControllers
    数组的内容。包含的视图控制器可能有自己的子视图控制器
  • 从第一个
    childViewControllers
    属性转储视图控制器可能会像这样工作(这是我的想法,未经测试):

    func dumpview控制器(控制器:[AnyObject],级别:UInt=0)
    {
    如果controllers.count==0{return}
    控制器中的控制器为[UIViewController]
    {
    对于变量i=0;i'};
    println(“+toString(controller));
    DumpViewController(controller.childViewController,级别:级别+1);
    }
    }
    
    它不漂亮,但应该能奏效;) 只需在rootViewController上调用递归ViewControllersDescription(),即可获得具有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
      }
    }
    
    扩展UIViewController{ func recursiveViewControllersDescription()->字符串{ 返回递归ChildViewControllerLevel(0) } func recursiveChildViewControllersLevel(级别:Int)->字符串{ var string=string() 对于变量i=0;i
    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
      }
    }