ios - 获取所有已加载的 uiviewcontroller

标签 ios debugging user-interface uiviewcontroller

我想打印加载的所有应用程序 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/

相关文章:

ios - 按实体索引 Swift 对 NSSortDescriptor 进行排序

iOS 工具提示图片

python - 如何让uWSGI Python异常消息漂亮地打印?

user-interface - 我从哪里开始学习 GUI 编程?

ios - 在 iOS 模拟器中运行 React Native 应用程序时找不到 UMModuleRegistryAdapter.h

ios - 如何找到 appleid.apple.com/auth/revoke 端点所需的 client_id 和 client_secret 值?

python - 在 Python 中调试问答游戏

安卓调试技巧

multithreading - windows phone 7中UI控件的线程亲和性

model-view-controller - 在 squeak 中编写 GUI