interface-builder - XCode 7:启动屏幕可能未设置自定义类名

标签 interface-builder ios9 xcode7-beta4

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

最佳答案

请注意,启动屏幕不是完全可自定义的 View Controller 。您不能在 Storyboard 中指定自定义类名称,并且不能期望系统在此阶段通过调用viewDidLoad为您提供执行代码的选项。请记住,该应用尚未启动。

启动屏幕约束

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

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

    有关更多详细信息,请单击here

    关于interface-builder - XCode 7:启动屏幕可能未设置自定义类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881645/

    相关文章:

    ios - Firebase/Swift 2 - 如何获取经过身份验证的用户密码和电子邮件

    ios - NSJSONSerialization 上的 exc_bad_instruction

    ios - Xcode 测试版 4 : Can't create a Bot - Crashes every time

    ios - 在 Interface Builder 中呈现自定义 UITextField 子类时出错

    带有 NIB 文件的 iOS UIView 子类不显示 IB 中设计的 UI

    multithreading - Swift iOS9 - dispatch_group - 需要代码以特定顺序执行

    javascript - Cordova - window.history.back() 不适用于 iOS 9 中的 HTML 后退按钮

    xcode - Xcode7 | Xcode UI测试|如何处理位置服务警报?

    objective-c - 在界面生成器中将列添加到 nstableview

    xcode - 在 Xcode 中设置约束,以便 NSView 在内容宽度增加时调整大小