我有一个项目原本打算成为iPhone应用程序,但现在我希望它也支持iPad。我已经将项目的目标从iPhone改为Universal,但我不知道如何管理我现在需要的两个nib版本,已经有为iPhone设计的笔尖。我尝试通过根据设备加载具有不同nib的相同viewControllers,但我不允许将多个接口控件设置到相同的插座。有帮助吗?我有Xcode 4.4
答案 0 :(得分:3)
这很简单。
对于storyboard文件,只需添加_iPad
和_iPhone
后缀即可。
例如,如果原始情节提要名称为MyStoryboard.storyboard
,则您现在拥有MyStoryboard_iPad.storyboard
和MyStoryboard_iPhone.storyboard
。您还可以在项目的摘要视图下为每个设备设置故事板文件。
然后,对于.xx文件,请包含~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值)来编写特定于设备类型的代码(例如特定视图的位置或尺寸等)。
答案 1 :(得分:1)
您只能将目标设备更改为iPhone / iPad,并且可以使用iPad的.xib
文件:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
//For navigate to iphone view
}
else{
//For navigate to ipad view
}
答案 2 :(得分:0)
为每个文件添加1个针对iPad的XiB,在导航过程中,选中上面显示的代码后的设备类型选择Xib