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 this in the Xcode debugger?
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.
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
还有Reveal.app ,它提供了比Xcode实时视图调试更多的功能,具有更好的UI并与AppCode集成。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.