您可以使用设备修改器(例如,~ipad)在信息中提供特定于设备的密钥.plist,并指定特定于设备的启动映像(例如,iPhone为Default.png,ipad为Default~ipad.png).这两件事在Apple Docs中有特别提到,但他们没有说这对任何其他类型的文件都有效.
我发现(完全是偶然的)这种方法适用于装载.xib文件通过initWithNibName:bundle:
.例如,我可以拥有MyView.xib和MyView~ipad.xib和该代码:
MyViewController *viewController = [[MyViewController alloc]
initWithNibName:@"MyView" bundle:nil];
... 将完全加载MyView~ipad.iPad上的xib和MyView.在其他设备上使用xib.
那么,1)这有记录在案吗?我肯定找不到任何苹果文档.这肯定比判断UI_USER_INTERFACE_IDIOM()和在任何地方硬编码两个不同的nib名称更方便,但如果没有文档记录,我就不相信它.
还有,2)有人知道这是从哪个版本的iOS开始工作的吗?我只在4.2中try 过,而且在那里很有效.一般来说,设备修改器(即使是上面列出的文件)的最小值为4.0.