繁体   English   中英

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

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

所以我尝试使用本教程为我的 iOS 8 应用程序创建一个启动故事板

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

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

[XCode 6.4 版]

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

通读教程并测试它,它没有说两件事:

1:您需要将一个UIViewController添加到您的.storyboard文件中,然后选择它作为初始控制器。

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

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

编辑:

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

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

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

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

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

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

在此处输入图片说明

没有一个答案包含所需的所有步骤,因此这是一个详尽的解决方案

故事板

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

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

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

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

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

  5. 如果设置得当,你的Info.plist应该有LaunchScreen .storyboard,没有根据的.storyboard UILaunchStoryboardNameUIMainStoryboardFile属性:

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

笔记:

  1. 这与使用 Launch Screen File > Assets为旧设备提供旧图像并不不兼容。
  2. 特别注意LaunchScreen.storyboardMain.storyboard 一个用于启动,另一个用于您的应用程序入口点。 他们都需要设置初始视图控制器

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

我相信我可能有一个类似的问题,需要一些与上述答案不同的东西。

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

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

坏掉的插座

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

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

希望这可以帮助

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

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

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

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

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

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

您是否正确地在部署信息中将主界面设置为“主要”(故事板名称)?

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

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

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

当我创建它时,我将它移动到项目导航器中的不同组/目录中,以保持整洁。 大错! 这将它与目标断开连接......它现在所在的组/目录是否连接到目标并不重要!

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

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

当您打开该菜单时,您应该会看到您的故事板作为单击选项。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM