XCode 7:启动屏幕可能无法设置自定义类名

时间:2015-08-07 15:38:39

标签: interface-builder ios9 xcode7-beta4

我使用Xcode 7 Beta 2创建了一个简单的应用程序。该应用程序只包含类MyAppDelegateMyViewControllerMyMain.storyBoardMyLaunchScreen.storyboard。使用Xcode 7 Beta 4重新编译应用程序后,错误"启动屏幕可能无法设置自定义类名称"出现。有什么建议吗?

4 个答案:

答案 0 :(得分:40)

请注意,启动屏幕不是完全可自定义的视图控制器。您无法在故事板中指定自定义类名,并希望系统通过调用viewDidLoad为您提供在此阶段执行代码的选项。请记住,该应用尚未推出。

启动屏幕约束

  • 系统在启动应用程序之前加载启动屏幕文件,这会对其可能包含的内容产生一些限制(其中一些可能会强制您回到静态图像文件):
  • 该应用尚未加载,因此视图层次结构不存在,系统无法调用您在应用中可能拥有的任何自定义视图控制器设置代码(例如viewDidLoad)
  • 您只能使用标准的UIKit类,因此您可以使用UIView或UIViewController,但不能使用自定义子类。如果您尝试设置自定义类,您将在Xcode中收到非法配置错误。
  • 启动屏幕文件只能使用基本的UIKit视图,例如UIImageView和UILabel。您无法使用UIWebView。
  • 如果您使用的是故事板,则可以指定多个视图控制器,但还有一些限制。例如,您可以在导航或标签栏控制器中嵌入视图控制器,但更复杂的容器类(如UISplitViewController)不起作用(至少现在还没有)。
  • 本地化启动屏幕文件目前似乎没有任何效果。始终使用基本本地化,因此您可能希望避免在启动屏幕上显示文本。
  • 您无法为iPad和iPhone指定不同的启动屏幕文件。如果这些设备的界面明显不同,则可能会出现问题,因为只有这么多可以用于自动布局和大小类。

如果要部署到iOS 7,您仍需要包含静态启动图像文件。您可以包含启动屏幕文件和静态启动图像。运行iOS 8的iPhone 6等设备将使用启动屏幕文件,而iOS 7设备将回退到启动图像。

有关详情,请点击here

答案 1 :(得分:25)

这是一个简单的答案,但我做过的事情甚至都不知道。我认为在iOS 7中,现在有一个main.storyboard和一个launchscreen.storyboard。我无意中尝试在启动screen.storyboard上构建我的初始功能屏幕。这不是不。

希望这有助于编码!

答案 2 :(得分:7)

浏览Main.storyboard中的View Controllers,确保您没有两者设置为自定义类:

enter image description here

有"是初始视图控制器"检查:

enter image description here

你只能做一个或另一个。不知怎的,我有"是初始视图控制器"仍被误检查,我花了一段时间来追捕它!

答案 3 :(得分:5)

我最近使用Xcode 8测试版创建了一个应用,但无法使用测试版软件将其提交到应用商店。我有相同的错误消息:“启动屏幕可能不会设置自定义类名”和其他几个。

我的解决方案:转到主故事板的文件检查器,然后取消选择“用作启动屏幕”选项。简单吧?希望这也适合你。

Here's an image of what to look for