创建两个xib,一个用于iPhone,一个用于iPad
Posted
技术标签:
【中文标题】创建两个xib,一个用于iPhone,一个用于iPad【英文标题】:Create two xibs, one for iPhone and one for iPad 【发布时间】:2012-07-09 22:45:47 【问题描述】:如何创建特定于设备的 xib?我为 iPhone 制作了一个通用的,但如何使用单独的 xib 文件?
【问题讨论】:
为 iPhone 制作一款,为 iPad 制作一款... 【参考方案1】:来自Apple Resource Programming Guide:
注意:如果您正在为 ios 开发通用应用程序,您可以使用特定于设备的命名约定为底层设备自动加载正确的 nib 文件。有关如何命名 nib 文件的详细信息,请参阅“iOS Supports Device-Specific Resources”。
在“iOS 支持设备特定资源”文档中,它是这样说的:
要将资源文件与特定设备关联,您可以在其文件名中添加自定义修饰符字符串。包含此修饰符字符串会生成具有以下格式的文件名:
basename - device.filename_extension
字符串代表资源文件的原始名称。它还代表您从代码访问文件时使用的名称。同样,字符串是用于标识文件类型的标准文件扩展名。该字符串是区分大小写的字符串,可以是以下值之一:
ipad - 资源只能在 iPad 设备上加载。 iphone - 资源只能加载到 iPhone 或 iPod touch 设备上。 您可以将设备修饰符应用于任何类型的资源文件。
因此,如果您想要单独的 .xib 文件,您将包括名为“MyView-ipad.xib”的 iPad xib 和名为“MyView-iphone.xib”的 iPhone xib。
一旦你将这些文件包含在你的项目中,当你调用它时:
UIViewController *someViewController = [[someViewController alloc] initWithNibName:@"MyView" bundle:nil];
根据您的应用程序在哪个设备上运行,将加载正确的 xib 文件。
希望这会有所帮助!
【讨论】:
【参考方案2】:这是创建新项目时的默认设置。举个具体的例子,我会为 iPhone 和 iPad 创建一个空白项目并深入研究。
【讨论】:
【参考方案3】:如果您已经将项目创建为 iPhone 项目,则需要将其更改为通用应用程序
【讨论】:
是的,但这并不能回答问题。以上是关于创建两个xib,一个用于iPhone,一个用于iPad的主要内容,如果未能解决你的问题,请参考以下文章
将 Storyboard 和 xib 用于同一个视图控制器?