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

时间:2011-08-10 13:11:18

标签: iphone ipad universal

我有一个iPhone应用程序 FirstViewController SecondViewController ,各自的观看次数 FirstView.xib SecondView.xib < /强>

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

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

到目前为止,我的研究表明,单个xib无法使用多个ViewControllers。请让我知道最好的方法。

由于

3 个答案:

答案 0 :(得分:5)

如果你正在使用Xcode4,你可以使用“过渡到通用目标”,它将完成所需的一切

http://xcodebook.com/2011/05/making-an-ios-target-universal/

如果你没有它,那么我建议将控制器与xib保持一致。 xib文件只包含iphone和ipad的视图,但控制器“可以”相同。你可以从rootviewcontroller控制你的逻辑,只是一个想法..这一切都取决于你的项目。

答案 1 :(得分:3)

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

我通常会创建一个基本的ViewController,比如说XYZViewController然后创建一个XYZViewController_iPhone,包含所有iPhone特价和一个单独的XYZViewController_iPad用于iPad。但如果它们完全不同,我会给它们提供唯一的名称和它们自己的NIB以及ViewControllers。

答案 2 :(得分:1)

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

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

2)实施单独的名称Xib(Iphone和ipad)

3)在Target Targeted Device Family中设置为(iphone / ipad) 并设置根据Ipad和iphone的帧 例如

如果(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad) {

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

} 其他 {

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

}

欢呼声