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

时间:2015-07-28 12:52:15

标签: ios xcode swift storyboard

所以我尝试使用this tutorial

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

但是,当我启动应用程序时,我只会看到黑屏。单个启动screen.xib文件工作正常,但是,当我尝试使用故事板时,它不起作用。

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

[XCode版本6.4]

编辑:所以我只是想澄清它是黑色的启动画面。应用程序加载完成后,主故事板本身就会正确显示

12 个答案:

答案 0 :(得分:19)

阅读教程并对其进行测试,并没有说明两件事:

1:您需要在UIViewController文件中添加.storyboard,然后将其选为初始控制器。

2:如果您希望更改的不仅仅是启动屏幕,则必须转到项目设置并将“主界面”设置为相应的.storyboard

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

编辑:

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

答案 1 :(得分:12)

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

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

例如,如果您的图片文件名为 launcher.png ,则只能使用 launcher 作为图片名称。

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

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

enter image description here

答案 2 :(得分:8)

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

故事板

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

  1. LaunchScreen.storyboard>显示文件检查器> 用作启动屏幕
  2. LaunchScreen.storyboard>视图控制器>显示属性检查器> 是初始视图控制器
  3. 项目>一般>部署信息>主界面>的 LaunchScreen
    重复[iPhone]和[iPad]
  4. 项目>一般>应用程序图标和启动图像>启动屏幕文件>的 LaunchScreen
  5. 如果设置正确, Info.plist 应该包含 LaunchScreen .storyboard ,而不包含 .storyboard UILaunchStoryboardName& UIMainStoryboardFile属性:

    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>UIMainStoryboardFile</key>
    <string>LaunchScreen</string>
    
  6. 备注:

    1. 与使用启动屏幕文件的旧设备的旧版图像不兼容&gt;的资产即可。
    2. 要特别注意LaunchScreen.storyboardMain.storyboard。一个用于启动,另一个用于您的应用入口点。他们都需要设置是初始视图控制器

答案 3 :(得分:5)

在用于启动的故事板中,请确保为其中存在的单个视图控制器选择了是初始视图控制器选项。

答案 4 :(得分:4)

我相信我可能遇到了类似的问题,需要与上述答案不同的东西。

我在.storyboard文件中创建了一个新的启动屏幕,然后在它出现之后我生成了一个新的.xib文件,该文件在应用程序启动时仍未显示。

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

the broken outlet

注意插座参考中的小号警告标志 - &gt; The warning

答案 5 :(得分:1)

确保设置了入口点,并在常规信息点按中确保将视图设置为从笔尖调整大小。还要确保在常规选项卡中设置了启动点。在部署信息中。

希望这有帮助

答案 6 :(得分:1)

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

答案 7 :(得分:0)

您是否已将主接口设置为&#34; Main&#34; (部署信息中的(故事板名称)正确吗?

答案 8 :(得分:0)

在我的应用本地化后,我有黑屏而不是我的飞溅。在LaunchScreen.storyboard的文件检查器的本地化部分中,我只有一个本地化的勾选。所以,我为第二次本地化添加了一个勾号,这解决了这个问题。

答案 9 :(得分:0)

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

例如,如果您的图片文件名为“img.png”,则只使用“img”。

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

这是因为LaunchScreen.storyboard只接受Assets.xcassets中的图像,并且引用Assets.xcassets中的图像的方式是没有扩展名的资源的名称。

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

答案 10 :(得分:0)

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

问题最终导致我的故事板失去了与目标的连接。

创建它时,我将其移到了Project导航器中的另一个组/目录中,以保持外观整洁。大错!断开了与目标的连接……现在位于其中的组/目录都已连接到目标,这没关系!

您可以在以下菜单中找到区别:

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

打开该菜单时,您应该将情节提要板作为单击的选择。

请勿手动输入情节提要名称 -这表明目标成员资格不正确。

答案 11 :(得分:0)

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

  • 启动屏幕界面文件基本名称 LaunchScreen
  • 主故事板文件基本名称 LaunchScreen

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

sim 和设备都这样做。在 LaunchScreen 之后,我缺少什么才能进入 Main?