Can I see the view hierarchy I have in my app while debugging in Xcode?

后端 未结 3 2041
面向向阳花
面向向阳花 2020-12-20 06:56

I am debugging my iOS app and since I have a view push/dismiss calls, I want to make sure I don\'t have any views in my stack that I wouldn\'t expect. Is it possible to see

相关标签:
3条回答
  • 2020-12-20 07:02

    As all of your view controllers should be managed by the navigation controller, you should be able to do something like this:

    NSArray * controllerArray = [[self navigationController] viewControllers];
    
    for (UIViewController *controller in controllerArray){
       //Code here.. e.g. print their titles to see the array setup;
       NSLog(@"%@",controller.title);
    }
    

    Taken from here: How to iterate all the UIViewControllers on the app

    0 讨论(0)
  • 2020-12-20 07:20

    You might find lldb comes to the rescue with 'recursiveDescription'. Simply set a breakpoint at the point where you are interested in the view hierarchy. If for example you want everything in the window you can type

    (lldb) po [[[[UIApplication sharedApplication] windows] firstObject] recursiveDescription]
    

    Alternatively, I often find that when debugging views I am mostly interested in the hierarchy for a particular view. In that instance you can hook straight in to the point in code you are curious about (for example the viewDidAppear: method) and type:

    (lldb) po [self.view recursiveDescription]
    

    Note: With Xcode 6 Apple have added realtime view debugging which you can access from the debug bar. Real Time View Debugging Xcode 6

    0 讨论(0)
  • 2020-12-20 07:25

    There is also Reveal.app which provide much more features than Xcode realtime view debugging, has a nicer UI and integrates with AppCode.

    0 讨论(0)
提交回复
热议问题