1

我有一个最初打算成为 iPhone 应用程序的项目,但现在我希望它也支持 iPad。我已将项目的目标从 iPhone 更改为 Universal,但我不知道如何管理我现在需要的两个 nib 版本,已经有为 iPhone 设计的 nib。我尝试根据设备加载具有不同笔尖的相同视图控制器,但我不允许将多个界面控件设置到相同的插座。有什么帮助吗?我有 Xcode 4.4

4

3 回答 3

3

这很容易。对于您的故事板文件,只需包含_iPad_iPhone后缀。例如,如果原始情节提要名称是MyStoryboard.storyboard,那么您现在将拥有MyStoryboard_iPad.storyboardMyStoryboard_iPhone.storyboard。您还可以在项目的摘要视图下为每个设备设置故事板文件。

然后,对于 .xib 文件,包括~iPhone~iPad后缀。 ViewController.xib变成ViewController~iPad.xibViewController~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,您可以使用.xibiPad 的文件:

  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 回答