将ipone项目转到ipad平台以及开发同时支持这两个平台的项目


开发同时支持这两个平台的项目:

1、   是在创建新项目的时候,创建基于Window-based Application,窗口中间product项选择Universal(只有基于Window-based才有这个选项)。创建完成如下图:

不同之处在于:少了Resouces Folder,增加了iPad,iPhone,Shared Folder。对iPhone、iPad加以了区分,这种模式笔者认为对于底层数据接口文件、类等共用的可放在Shared Folder,但对于上层类,XIB相应的要创建单独的两份(且不能同名),一种基于iphone,一种基于iPad。两者无关系,所以也不用在代码里进行区分。

 

2、   是完全用代码实现的项目,通过在代码里识别程序运行的设备,之后你可以根据对应的设备,做响应的试图显示操作。如:

#if(__IPHONE_OS_VERSION_MAX_ALLOWED>= 30200)

            if (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad) {

                     UILabel*lab = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];

                     lab.text= @" Runing as an iPad application ";

                     [self.viewaddSubview:lab];

                    [lab release];

        }

        else{

                 UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, 100, 50)];

                     lab.text= @" Running as an iPhone/iPod touch application";

                     [self.viewaddSubview:lab];

                     [labrelease];                

        }

  #endif

 

3、   是针对基于xib的iphone项目,建立两套xib文件,根据程序运行时的运行设备,选择对应的xib文件。

但在我做的Demo中,并不能智能地选择对应xib文件,还是须代码判断设备选择相应xib,稍后做详解。

 

第3种方法也可以实现将ipone项目转到ipad平台

无论是已有的iphone项目还是新创建的项目(作iphone项目创建)通过以下步骤转到iPad平台。

一、 创建aView-based Application (iPhone) project,命名Demo,然后把此iphone程序升级为Universal程序。点击菜单栏“Project”-〉“UpgradeCurrent Target for iPad…”-〉选择“OneUniversal application”,这样做 Universal 版本,主要是针对mainWindow.xib,会自动生成Resources-iPad文件夹,里面有一个 mainWindow-iPad.xib文件。

 

在.plist里,应该会有main nib file base name这个Key,对应MainWindow,就是iphone程序的入口;同时会有main nib file base name(iPad),对应MainWindow-iPad这项,如果没有,自己建立一个,universal版本会多出这项,选择即可。然后须自己建立一个xib文件,来作为iPad入口。对应于上面iphone的DemoViewController.xib文件,创建基于iPad名为DemoViewController-iPad的View XIB。 注意:把MainWindow-iPad.xib里的DemoViewController下面Attributes选项卡下NIB Name设置为”DemoViewController-iPad”。此处就设置好了iPad入口。

 

技巧:对于已有的iPhone版的XIB文件,也可以这样生成iPad XIB,如:打开这个DemoViewController.xib文件,然后点击File ->Create iPad version(usingautosizing masks),会自动生成一个iPad版的DemoViewController.xib,然后另存为名字的iPad的XIB文件,这里命名为DemoViewController-iPad.xib,然后拖到项目里就完成了。

在Build ->Targeted Device Family处,设置为”iPhone/iPad”;

到此,在DemoViewController.xib和DemoViewController-iPad.xib里分别加入不同的显示,分别在iPhone、iPad下运行看是否正确,正确的运行应该是在iPad下程序能自动选择显示DemoViewController-iPad.xib。

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

 

对于其他不是关联在MainWindow 上的XIB文件,程序不能自动选择(现还没有找到方法可以),比如OtherViewController.xib,用上面的技巧生成OtherViewController-iPad.xib并加入到项目中,然后在对应OtherViewController.m中:

- (void)viewDidLoad 
{

[super  viewDidLoad];
if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)   
{
[[NSBundlemainBundle]loadNibNamed:@"OtherViewController-iPad"owner:selfoptions:nil];
}
else
{
[[NSBundlemainBundle]loadNibNamed:@" OtherViewController"owner:selfoptions:nil];
}    

}

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

 

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

 

 

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值