我想打印所有应用程序视图控制器的列表,这些视图控制器已加载,以便了解我为什么会出现白屏并进行一般调试。
请指教, 谢谢, 阿萨夫
答案 0 :(得分:1)
你可以做这样的递归打印输出(我知道它不完美,但它是一个开始):
static void printViewControllerRecursively(UIViewController *viewController, NSUInteger level)
{
NSMutableString *spaces = [NSMutableString stringWithCapacity:level * 3];
for (NSUInteger i = 0; i < level; ++i)
{
[spaces appendString:@" "];
}
NSLog(@"%@->%@", spaces, viewController);
if ([viewController isKindOfClass:[UITabBarController class]])
{
for (UIViewController *child in [(UITabBarController *)viewController viewControllers])
{
printViewControllerRecursively(child, level + 1);
}
}
else if ([viewController isKindOfClass:[UINavigationController class]])
{
for (UIViewController *child in [(UINavigationController *)viewController viewControllers])
{
printViewControllerRecursively(child, ++level);
}
}
}
然后只需致电printViewControllerRecursively([UIApplication sharedApplication].keyWindow.rootViewController, 0);
答案 1 :(得分:0)
这似乎不是尝试和调试anyhitng的好方法,但据说你可以使用:
NSLog(@"%@", [self.navigationController viewControllers]);
或
NSLog(@"%@", [self.tabBarController viewControllers]);
等等......
猜猜这取决于你如何设置你的应用程序。