我使用 Xcode 7 Beta 2 创建了一个简单的应用程序。该应用程序只包含类MyAppDelegate
、MyViewController
和。使用 Xcode 7 Beta 4 重新编译应用程序后,出现错误“启动屏幕可能无法设置自定义类名”。有什么建议么?MyMain.storyBoard
MyLaunchScreen.storyboard
问问题
32938 次
4 回答
41
请注意,启动屏幕不是完全可定制的视图控制器。您不能在情节提要中指定自定义类名并期望系统在此阶段通过调用 viewDidLoad 为您提供执行代码的选项。请记住,该应用程序尚未启动。
启动屏幕约束
- 系统在启动应用程序之前加载启动屏幕文件,这会对它可以包含的内容产生一些限制(其中一些可能会迫使您返回静态图像文件):
- 应用程序尚未加载,因此视图层次结构不存在,系统无法调用您在应用程序中可能拥有的任何自定义视图控制器设置代码(例如 viewDidLoad)
- 您只能使用标准 UIKit 类,因此您可以使用 UIView 或 UIViewController 但不能使用自定义子类。如果您尝试设置自定义类,您将在 Xcode 中收到 Illegal Configuration 错误。
- 启动屏幕文件只能使用基本的 UIKit 视图,例如 UIImageView 和 UILabel。您不能使用 UIWebView。
- 如果您使用情节提要,您可以指定多个视图控制器,但也有一些限制。例如,您可以在导航或标签栏控制器中嵌入视图控制器,但更复杂的容器类(如 UISplitViewController)不起作用(至少现在还不起作用)。
- 本地化启动屏幕文件目前似乎没有任何效果。始终使用基本本地化,因此您可能希望避免在启动屏幕上显示文本。
- 您不能为 iPad 和 iPhone 指定不同的启动屏幕文件。如果您对这些设备有显着不同的界面,这可能是一个问题,因为您只能使用自动布局和大小类做很多事情。
如果您要部署到 iOS 7,您仍然需要包含静态启动图像文件。您可以同时包含启动屏幕文件和静态启动图像。运行 iOS 8 的 iPhone 6 等设备将使用启动屏幕文件,而 iOS 7 设备将回退到启动图像。
更多详情请点击这里
于 2015-10-10T11:15:34.903 回答
25
这是一个简单的答案,但我做了一些甚至不知道的事情。我认为在 iOS 7 中,现在有一个 main.storyboard 和一个 launchscreen.storyboard。我无意中试图在启动 screen.storyboard 上构建我的初始功能屏幕。那是不行的。
希望这对编码有所帮助和快乐!
于 2016-02-06T20:42:23.423 回答
6
我最近使用 Xcode 8 测试版创建了一个应用程序,但无法使用测试版软件将其提交到应用商店。我有相同的错误消息:“启动屏幕可能无法设置自定义类名”和其他几个。
我的解决方案:转到 Main Storyboard 的 File Inspector 并取消选择 Use as Launch Screen 选项。很简单,对吧?希望这也适用于你。
于 2016-07-23T03:26:47.243 回答