将iPhone应用程序转换为通用应用程序?

将iPhone应用程序转换为通用应用程序?,iphone,ipad,universal,Iphone,Ipad,Universal,我有一个iPhone应用程序 FirstViewController和SecondViewControllerFirstView.xib和SecondView.xib

我有一个iPhone应用程序
FirstViewController
SecondViewController
FirstView.xib
SecondView.xib
<

现在我想让这个应用程序同时适用于iPhone和iPad。对于iPad,我需要将
Firstview.xib
SecondView.xib
合并为一个
ThirdView iPad.xib

最好的方法是什么?我是否需要为iPad编写另一个ViewController类,或者我是否可以将现有的
第一个ViewController
第二个ViewController
与单个xib一起使用

到目前为止,我的研究表明,没有办法将多个ViewController与单个xib一起使用。请让我知道最好的方法


谢谢

除非你是受虐狂,否则最好只创建一个新的ViewController。以这种方式重用很可能会有很多麻烦,如果需要重用ViewController中的逻辑,我会选择聚合或继承


我通常会创建一个基本的ViewController,比如说
XYZViewController
,然后创建一个带有所有iPhone特殊功能的
XYZViewController\u iPhone
,并为iPad创建一个单独的
XYZViewController\u iPad
。但是如果它们完全不同,我会给它们唯一的名称和它们自己的NIB以及ViewController。

如果您使用的是Xcode4,您可以使用“transition to universal target”,它可以完成所有需要的操作


如果您没有,那么我建议将控制器置于xib之外。xib文件将只包含iphone和ipad的视图,但控制器“可以”相同。您可以从rootviewcontroller控制您的逻辑,这只是一个想法。这取决于您的项目。

将Iphone应用程序转换为Univarsal应用程序有以下规则

1) 在Plist文件中添加NSMainNibFile~ipad。。。。主窗口\ ipad(ipad窗口)

2) 实现单独的名称Xibs(Iphone和ipad)

3) 在目标设备系列中设置为(iphone/ipad) 并根据Ipad和iphone设置框架 比如说

if(UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad) {

frame=CGRectMake(971,6,32,32);//ipad

} 其他的 {

frame=CGRectMake(438,6,32,32);//iphone

}


干杯

谢谢。。。我的问题是,我必须将两个iPhone视图合并到一个iPad视图中。在这种情况下,是否可以使用相同的控制器?如果是,怎么做?@Atif这意味着将有完全不同的视图,因此您可以使用另一个控制器。我建议您首先创建一个通用项目,并尝试部署您的应用程序,您将看到您的可能性以及需要做得更好的地方。您仍然可以使用第一个“过渡到通用目标”