我有一个iPhone应用程序
FirstViewController
和 SecondViewController
,各自的观看次数 FirstView.xib
和 SecondView.xib
< /强>
现在我想让这个应用程序适用于iPhone和iPad。对于iPad,我需要将 Firstview.xib
和 SecondView.xib
合并为一个 ThirdView-iPad.xib
。
最好的方法是什么?我是否需要为iPad编写另一个ViewController类,或者我可以将现有的 FirstViewController
和 SecondViewController
与单个xib一起使用?
到目前为止,我的研究表明,单个xib无法使用多个ViewControllers。请让我知道最好的方法。
由于
答案 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
}
欢呼声