现在的位置: 首页 > 综合 > 正文

一套代码实现 ipad&iphone

2017年10月31日 ⁄ 综合 ⁄ 共 1103字 ⁄ 字号 评论关闭

http://www.cocoachina.com/bbs/read.php?tid-41245.html

http://www.devx.com/wireless/Article/44472

现在来说基本解决了。

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


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


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

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


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


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


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

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

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


- (void)viewDidLoad 

{
if(UI_USER_INTERFACE_IDIOM()
== 
UIUserInterfaceIdiomPad)   

{
[[NSBundlemainBundleloadNibNamed:@"AController-iPad"owner:selfoptions:nil];
}
else
{
[[NSBundlemainBundleloadNibNamed:@"AController"owner:selfoptions:nil];
}    

[superviewDidLoad];
//your other init code here

}

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


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

{
//iPad version code here
}
else
{
//iPhone/touch version code here
}

抱歉!评论已关闭.