3

我有一个 带有各自视图的iPhone 应用程序FirstViewController和.SecondViewControllerFirstView.xibSecondView.xib

现在我想让这个应用程序同时适用于 iPhone 和 iPad。对于 iPad,我需要合并Firstview.xibSecondView.xib成为一个ThirdView-iPad.xib.

最好的方法是什么?我是否需要为 iPad 编写另一个 ViewController 类,或者我可以使用现有的FirstViewControllerSecondViewController单个 xib 吗?

到目前为止,我的研究表明,没有办法将多个 ViewController 与单个 xib 一起使用。请让我知道执行此操作的最佳方法。

谢谢

4

3 回答 3

5

如果您使用的是 Xcode4,您可以使用“过渡到通用目标”,它将完成所需的一切

http://xcodebook.com/2011/05/making-an-ios-target-universal/

如果你没有它,那么我建议将控制器放在你的 xib 之外。xib 文件将仅包含 iphone 和 ipad 的视图,但控制器“可以”相同。你可以从 rootviewcontroller 控制你的逻辑,只是一个想法......这一切都取决于你的项目。

于 2011-08-10T13:16:49.087 回答
3

除非你喜欢受虐狂,否则你最好只创建一个新的 ViewController。以这种方式重用很可能会很麻烦,如果您需要在 ViewControllers 中重用逻辑,我会选择聚合或继承。

我通常创建一个基本的 ViewController,比如说XYZViewController,然后创建一个XYZViewController_iPhone包含所有 iPhone-specials 和一个单独XYZViewController_iPad的 iPad。但如果它们完全不同,我会给它们唯一的名称和它们自己的 NIB 以及 ViewControllers。

于 2011-08-10T13:15:36.703 回答
1

将 Iphone 应用程序转换为通用应用程序有以下规则

1) 在 Plist 文件中添加 NSMainNibFile~ipad .... MainWindow_ipad(ipad 窗口)。

2) 实现单独的名称 Xibs (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); //苹果手机

}

干杯

于 2011-08-20T06:50:06.490 回答