我有一个最初打算成为 iPhone 应用程序的项目,但现在我希望它也支持 iPad。我已将项目的目标从 iPhone 更改为 Universal,但我不知道如何管理我现在需要的两个 nib 版本,已经有为 iPhone 设计的 nib。我尝试根据设备加载具有不同 Nib 的相同 View Controller ,但我不允许将多个界面控件设置到相同的 socket 。有什么帮助吗?我有 Xcode 4.4
最佳答案
这很容易。
对于您的 Storyboard文件,只需包含 _iPad
和 _iPhone
后缀。
例如,如果原始 Storyboard名称是 MyStoryboard.storyboard
,您现在将拥有 MyStoryboard_iPad.storyboard
和 MyStoryboard_iPhone.storyboard
.您还可以在项目的摘要 View 下为每个设备设置 Storyboard文件。
然后,对于.xib 文件,包括 ~iPhone
和 ~iPad
后缀。ViewController.xib
变成 ViewController~iPad.xib
和 ViewController~iPhone.xib
首先,如果您现有的 .xib 文件,您可以创建一个副本并将它们重命名为具有 iPad 和 iPhone 后缀。然后根据需要更改每个 .xib 的内容。
至于 .m 代码,您可以检查设备类型并分支您的代码。我的方法是定义识别设备类型的宏,如下所示:
#define isDeviceIPad (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
#define isDeviceIPhone (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
然后我只使用这些宏(返回 bool 值)来编写特定于设备类型的代码(例如特定 View 的位置或尺寸等)。
关于iphone - 在 Xcode 中将 iPhone 目标应用程序转换为 Universal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469792/