【发布时间】:2013-01-18 06:48:45
【问题描述】:
我有一个通用应用程序,我在 application:didFinishLaunchingWithOptions 中手动加载我的主故事板。
我有 2 个用于 iPhone 和 iPad 的故事板,它们具有 ~iPhone 和 ~iPad 后缀。我正在加载我的故事板:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
self.initialViewController = [storyboard instantiateInitialViewController];
这会将Unknown class ViewController in Interface Builder file. 打印到控制台,因此显然它没有加载正确的情节提要。但是,当我使用 [UIStoryboard storyboardWithName:@"MainStoryboard~iPhone" bundle:nil]; 时,它可以正常工作,但当然只适用于 iPhone。
我错过了什么?如何使用名称后缀自动选择正确的情节提要?
【问题讨论】:
-
你为什么不去项目设置,在 iphone 部署信息中设置 iphone 的故事板,在 ipad 部署信息中设置 ipad 的故事板。您是否在每台设备上使用多个故事板?我的意思是你手动加载故事板的目的是什么?
-
我要做的是将 IIViewDeckController 设置为根视图控制器,因此自动加载情节提要没有帮助。
-
这似乎是某些版本中的错误(对我来说,它在 iOS 6.1.2 中被破坏,但它在同一个项目的早期工作)。根据 Apple 文档,~iphone 后缀是通用的,应该会影响它们的所有资源加载(图像、NIB 文件 - 在我以前的经验中,一切)。故事板似乎坏了,不知何故跳过了选择器。
标签: iphone ios uistoryboard