我想打印加载的所有应用程序 View Controller 的列表,以便了解为什么我会出现白屏并用于一般调试目的。
请指教, 谢谢, 阿萨夫
最佳答案
您可以像这样进行一些递归打印输出(我知道这并不完美,但这是一个开始):
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);
关于ios - 获取所有已加载的 uiviewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23682159/