我有一个最初打算成为 iPhone 应用程序的项目,但现在我希望它也支持 iPad。我已将项目的目标从 iPhone 更改为 Universal,但我不知道如何管理我现在需要的两个 nib 版本,已经有为 iPhone 设计的 nib。我尝试根据设备加载具有不同笔尖的相同视图控制器,但我不允许将多个界面控件设置到相同的插座。有什么帮助吗?我有 Xcode 4.4
问问题
1228 次
3 回答
3
这很容易。对于您的故事板文件,只需包含_iPad
和_iPhone
后缀。例如,如果原始情节提要名称是MyStoryboard.storyboard
,那么您现在将拥有MyStoryboard_iPad.storyboard
和MyStoryboard_iPhone.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)
然后我只使用这些宏(返回布尔值)来编写特定于设备类型的代码(例如特定视图的位置或尺寸等)。
于 2012-11-20T09:15:37.163 回答
1
您只能将目标设备更改为 iPhone / iPad,您可以使用.xib
iPad 的文件:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
//For navigate to iphone view
}
else{
//For navigate to ipad view
}
于 2012-11-20T09:18:14.253 回答
0
为每个文件添加 1 个针对 iPad 的 XiB,在导航期间,使用上面显示的代码检查设备类型后选择 Xib
于 2012-11-20T10:16:12.073 回答