4

根据Apple 的资源编程指南,您应该能够对任何类型的资源文件使用设备修饰符

这是报价单

您可以将设备修饰符应用于任何类型的资源文件。

然而,虽然这似乎适用于大多数资源(图像、笔尖),但在将它与故事板一起使用时遇到了问题。

我尝试做的是有两个故事板,其中一个~ipad的文件名附加了后缀,并尝试像下面这样加载它

  UIStoryboard *mySB = 
       [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];
    myViewController = [sigRequestSB instantiateInitialViewController];

我得到了一个NSInternalInconsistencyException例外

奇怪的是,如果我有一个带有~ipad修饰符的故事板,我只会收到这个错误,如果我只有一个没有修饰符的故事板,它只会将它加载到 iPad 上。此外,如果我检测到正在运行的设备并使用完整文件名加载情节提要(即在 iPad 上将“~ipad”附加到文件名),它就可以工作。

这是完整的错误

2013-08-29 15:32:44.294 MyApp [18757:c07] *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle(已加载)”,名称为“UIViewController-Cq1-” k2-VhC'和目录'MyStoryboard.storyboardc''

4

0 回答 0