将ipone项目转到ipad平台,如果有多个xib文件

shengbin 2011-10-25

本文来源自:http://www.cocoachina.com/bbs/read.php?tid=41245

类似参考还有:http://www.cocoachina.com/bbs/read.php?tid-31022.html

将ipone项目转到ipad平台,如果有多个xib文件,该怎么办?

1。 首先,不能把问题考虑复杂了,这个转化其实很简单。

2。将iphone版本升级成universal版本,方法不赘述。

3。在.plist里,应该会有mainnibfilebasename这个key,对应MainWindow,就是iphone程序的入口;

同时会有mainnibfilebasename(iPad)这项,如果没有,就自己建立个,universal版本会多出来这项,选择它就是了),然后需要自己建立个xib文件,来作为iPad入口,比如说MainWindow-iPad

技巧:已经有iPhone版的xib文件,打开这个xib文件,然后file==>CreateiPadversion(usingautosizingmasks),会自己生成一个iPad版本的untile.xib的文件,然后另存为你自己的名字的iPad的xib就可以了。然后拖到并加入到你的项目里。

以上是解决程序入口的问题。

4。对于其他的xib文件,比如说AController.xib,

首先,用上面的技巧生成AController-iPad.xib并加入到你的项目里;

然后找到它对应类文件AController.m,

-(void)viewDidLoad

{

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)

{

[[NSBundlemainBundle]loadNibNamed:@"AController-iPad"owner:selfoptions:nil];

}

else

{

[[NSBundlemainBundle]loadNibNamed:@"AController"owner:selfoptions:nil];

}

[superviewDidLoad];

//yourotherinitcodehere

}

加入红色部分的code即可,那个loadNibNamed:根据具体的来改。

5。对于内部的其他代码,若iPhone与iPad版本有区别的话,继续用好上面的if判断语句就可以了。

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)

{

//iPadversioncodehere

}

else

{

//iPhone/touchversioncodehere

}

6。强烈建议写程序时候对于控件位置和大小,别用具体的数字,而用size.weight,size.height这样的写法,或者单独开个头文件define出去,不然一个一个的改尺寸大小会很郁闷的。

iphone-->iPad的改动,难倒是不难,主要是要细心而已。

暂时只想到这么多了,以后再补充。

相关推荐