iPad特定的资源后缀不适用于故事板

时间:2013-08-29 20:06:56

标签: ios objective-c cocoa-touch uistoryboard ios-universal-app

根据Apple's Resource Programming Guide,您应该可以将设备修饰符用于任何类型的资源文件

这是引用

  

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

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

我尝试过做的是有两个故事板,其中一个故事板上附有~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''

0 个答案:

没有答案