iOS 8:启动屏幕 StoryBoard 显示为黑色 [单个 XIB 文件工作正常]

iOS 8: Launch Screen StoryBoard appears black [single XIB file works fine]

所以我尝试使用 this tutorial

为我的 iOS 8 应用程序创建启动故事板

但是,我只在启动我的应用程序时出现黑屏。单个启动 screen.xib 文件可以完美运行,但是,当我尝试使用故事板时,它不起作用。

我尝试了一个只有一个视图控制器的情节提要,但它仍然给我黑屏,因此我认为问题出在我的设置中的情节提要文件上。有什么想法吗?

[XCode 版本 6.4]

编辑:所以我只是想澄清一下,是启动屏幕显示为黑色。当应用程序完成加载时,主情节提要本身会正确显示

在您用于启动的情节提要中,请确保您已经为其中存在的单个视图控制器选择了是初始视图控制器选项。

看完教程测试了一下,没说两句:

1: 你需要添加一个 UIViewController 到你的 .storyboard 文件,然后 select 它作为初始控制器。

2:如果您想要更改的不仅仅是启动屏幕,您必须转到项目设置并将 "Main Interface" 设置为相应的 .storyboard

完成后,您需要做的就是编辑 UIButton/Label/etc 连接到您的 ViewController 类。

编辑:

为了澄清,您可以将 UIView 设置为初始控制器,方法是 select 在其各自的故事板文件中设置它,然后打开 Attributes Inspector。 “是初始控制器”选项在中间。

None 的答案具有所需的所有步骤,因此这个详尽的解决方案

故事板

首先创建 LaunchScreen.storyboard。 Xcode > 文件 > 新建 > 文件... > 故事板 > LaunchScreen.storyboard 并将其添加到所有适当的目标。
在这个故事板中,创建一个 UIViewController 类型的单一视图控制器。完成启动屏幕所需的所有魔法,然后按照以下步骤操作:

  1. LaunchScreen.storyboard > 显示文件检查器 > 用作启动屏幕

  2. LaunchScreen.storyboard > 视图控制器 > 显示属性检查器 > 是初始视图控制器

  3. 项目 > 常规 > 部署信息 > 主界面 > LaunchScreen
    对 [iPhone] 和 [iPad]

    重复
  4. 项目 > 常规 > 应用程序图标和启动图像 > 启动屏幕文件 > LaunchScreen

  5. 如果设置正确,您的 Info.plist 应该有 LaunchScreen .storyboard ,在 UILaunchStoryboardNameUIMainStoryboardFile 属性下没有 .storyboard

    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>LaunchScreen</string>
    

备注:

  1. 与使用启动屏幕文件 > 资产.
  2. 的旧设备旧图像不兼容
  3. 特别注意 LaunchScreen.storyboardMain.storyboard。一个用于启动,另一个用于您的应用程序入口点。他们都需要设置 Is Initial View Controller

确保您设置了入口点,并在您的一般信息点击中确保您将视图设置为从 nib 调整大小。还要确保在您的常规选项卡中设置了启动点。在部署信息中。

希望对您有所帮助

我相信我可能遇到过类似的问题,需要与上述答案略有不同。

我在 .storyboard 文件中创建了一个新的启动屏幕,然后在它没有出现后我得到了一个新的 .xib 文件,该文件在应用程序启动时仍然没有出现。

我发现我的启动屏幕上的一些图像有一个旧的 .swift 文件的 Outlet Collection。从 LaunchScree.xib 中删除它后,启动屏幕工作正常。

注意插座参考中的小警告标志 ->

在这上面花的时间太长了,感谢 Apple!我终于发现我必须删除视图控制器中的实际 UIImageView - 而不仅仅是图像 - 才能更改为不同的图像。尝试重命名图像,以各种不同的方式替换它们,删除缓存,从设备中删除应用程序,在构建之前进行清理。就我所见,原始图像已从各处消失,但它仍会出现。最后,我在视图控制器的顶部添加了一个新的 UIImageView,这拍摄了一张新图像。然后我只是删除了旧的 UIImageView ,一切都很好。

对于在启动屏幕中使用 UIImageView 的用户

确保您在属性检查器中使用的图像名称 没有扩展名

因此,例如,如果您的图像文件名为 launcher.png,则仅使用 launcher 作为图像名字.

这将在编辑器中将图像显示为无效 (?),但在设备上 运行 时将正确显示。

(不要问我为什么这样工作。问Apple。)

本地化我的应用程序后,我出现了黑屏而不是启动画面。在 LaunchScreen.storyboard 文件检查器的本地化部分,我只有一个本地化标记。所以,我为第二次本地化添加了一个勾号,这解决了这个问题。

解决方案是使用不带扩展名 png 的图像名称。

例如,如果您的图像文件名为 "img.png",则仅使用 "img"。

这会在编辑器中将图像显示为无效 (?),但会在 运行 上正确显示。

发生这种情况是因为 LaunchScreen.storyboard 只接受 Assets.xcassets 中的图像,并且 Assets.xcassets 中引用图像的方式是不带扩展名的资源名称。

我认为使用不带扩展名的名称是一种可行的解决方法。

@SwiftArchitect 和其他人的回答很好,但我一直看到黑色的启动屏幕,而不是我的启动故事板。

问题最终是 我的故事板失去了与我的目标的联系。

创建它时,我将其移至项目导航器中的另一个 group/directory,以保持整洁。大错!这将它与目标断开连接......它现在所在的 group/directory 已连接到目标并不重要!

您可以在位于以下位置的下拉菜单中分辨出不同之处:

Project > General > App Icons and Launch Images > Launch Screen File

当您打开该菜单时,您应该会看到您的故事板是一个可供点击的选项。

不要手动输入故事板名称 -- 这表明目标成员资格不正确。

我也在尝试添加一个启动屏幕,这个过程让它出现(谢谢!),但现在应用程序挂在那里,而不是继续 Main.storyboard 和 viewDidLoad。我有这个:

  • 启动屏幕界面文件基本名称 LaunchScreen
  • 主情节提要文件基本名称 LaunchScreen

如果我将第二个 LaunchScreen 更改为 Main,我确实会进入 viewDidLoad 和应用程序的主屏幕,但没有 LaunchScreen。

sim 和设备都这样做。在 LaunchScreen 之后我想去 Main 缺少什么?