如何在没有xib文件的情况下为iPhone + iPad开发通用应用程序?

时间:2010-10-11 08:49:15

标签: iphone ipad

我想制作一个通用版本,但我完全以编程方式创建了我的UI。

1)我可以将不同的视图控制器类添加到特定于设备的资源目录中吗?或者必须在两个设备上共享课程?

2)如果我必须在两台设备上共享课程,那么有条件地加载classA或classB的最安全方法是什么,具体取决于它是iPhone还是iPad设备?

2 个答案:

答案 0 :(得分:3)

1)您无法在两个位置添加视图控制器类,因为在编译时,将在两个位置找到相同的符号(即类名),并且应用程序将不会链接。

2)我会说最安全的方法是使用不同的.xib,但是如果你想让它仅仅通过代码工作,你就可以创建一个只能正确加载类的单例视图管理器。然后,在其余代码中,您需要做的就是:  [MyViewManager sharedInstance] instantiateViewController:kMyDetailsView] 并根据需要显示视图。

要确定当前设备,您可以使用如下语句:#define iPad [UIDevice currentDevice].userInterfaceIdiom==UIUserInterfaceIdiomPad。它可以包含在您的前缀文件中,使其可用于整个项目。

答案 1 :(得分:1)

在每个视图控制器上,您可以执行设备检查以查看正在运行您的应用的设备,并相应地构建您的UI。即,只使用一组视图控制器,在* .m文件中,在if-else循环中,相应地构建你的UI。

请参阅此帖子进行设备检查: Determine device (iPhone, iPod Touch) with iPhone SDK

PS:在你的if-else中,做一个if(iPad){} else {}检查作为一种最佳做法,因为,如果他们这样做,人们会忘记检查iPod Touch(iPhone){ }否则{}