iOS UINavigationController 加载到白屏但应用程序正在运行

Posted

技术标签:

【中文标题】iOS UINavigationController 加载到白屏但应用程序正在运行【英文标题】:iOS UINavigationController loading to white screen but app is running 【发布时间】:2015-09-01 14:56:41 【问题描述】:

我正在开发一个带有单个 ViewController 的应用程序。当我运行应用程序时,它会转到启动文件时包含的默认 LaunchScreen,然后转到 ViewController。一切都很好,它加载并完成了它应该做的一切,包括一些音频反馈。

然后,从我的故事板中,我点击了现有的 ViewController,然后点击了 Editor -> Embed In -> Navigation Controller。 Navigation Controller 出现,Storyboard 在两个屏幕上都反映了 Navigation Bar,并且 Navigation Controller 已选中“Is Initial View Controller”。太好了。

但是,现在,如果我运行该应用程序,LaunchScreen 会运行,然后出现一个空白屏幕。没有导航栏,没有原来的界面。但是,我仍然收到我的音频反馈 - 应用运行良好。

那么发生了什么?

如果您有任何想看的内容(代码、屏幕截图等),请告诉我。

【问题讨论】:

首先要做的是弄清楚你到底看到了什么。在didFinishingLaunching 中,将窗口背景涂成红色。如果应用现在启动为红色,我们现在知道您看到的是窗口本身。 检查情节提要中的 ViewController 类并关注@matt 评论。 好的,在 AppDelegate.m 中,我已将 didFinishLaunching 函数调整为以下内容:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions [self.window setTintColor:[UIColor greenColor]]; return YES; 但我没有看到任何色调发生,仍然是白屏。 不是色调,伙计。色调是按钮文本的颜色!为窗口颜色着色(backgroundColor)。 我不知道这是什么意思,只是我们还没有确定您看到的视图。我们不知道它来自哪里。它不是窗户。它不是您的视图控制器在代码中的视图。它不是您的视图控制器在情节提要中的视图。你还有什么?故事板中是否有 另一个 视图控制器?我建议您应该尝试为每个场景的每个视图着色,直到您了解这个白色的东西到底是什么。 【参考方案1】:

我使用 PixateFreestyle 来设置一些元素的样式。在某些时候,我似乎相当笨拙地添加了:

view 
    background-color:#ffffff;

其中涵盖了嵌套在根视图控制器中的视图。当我注意到将我的类复制到另一个项目导致相同的问题并开始注释掉块时,我想通了。取出 Pixate 初始化并恢复我的视野。

感谢所有提供帮助的人。如果不出意外,我学到了更多关于调试 ios 应用程序的知识。

【讨论】:

实际上你做的最后一件事——尝试在另一个更简单的项目中重现问题——本身就是一种非常重要的调试方式!我希望更多的人会这样做。

以上是关于iOS UINavigationController 加载到白屏但应用程序正在运行的主要内容,如果未能解决你的问题,请参考以下文章

使用 UINavigationController 从另一个控制器更新或重新加载 UIViewController?

带有标签栏的 presentViewController

将 managedObjectContext 发送到 viewController 崩溃

如何正确关闭作为模式呈现的 UINavigationController?

ID:[...] 的 NSManagedObject 已失效

在 UINavigationController 中设置时图像不显示