0

我正在为 Iphone 和 Ipad 创建一个通用应用程序。但我不需要为 Iphone 和 Ipad 上相同的课程。我需要为每个 Iphone 和 Ipad 开设单独的课程。任何人都可以给我一个想法如何做到这一点?我已经使用 Xcode 4 创建了我的应用程序。但是当我在那里创建一个新项目时,它会为两个设备生成一个类文件和 Nib。为了我的目的,我不需要那样做。

EX:我需要这两种设备的类文件

IphoneviewController.h
IPhoneviewController.m

IPadviewController.h
IPadviewController.m

one Xib

UniversalviewController.xib

感谢并寻求快速答复。

4

2 回答 2

0

如何在你的 applicationDidFinishLaunch 中执行以下操作:

UIViewController * viewController;
if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) {
  viewController = [[IphoneviewController alloc] initWithNib: "UniversalviewController"];
} else {
  viewController = [[IPadviewController alloc] initWithNib: "UniversalviewController"];
}
//now use your VC however it is appropriate for your app, such as...
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];

顺便说一句,关于 MVC 讨论,假设您需要两个不同的 viewControllers 用于两个平台,您可以通过创建一个包含几乎所有内容的共享类来共享公共代码,将其导入每个,然后只实现或覆盖任何内容这需要在 ipad 的特定版本中特定于 iPad。

例如,这是您的 IPadviewController 的 .h ...

#import "viewController_Shared.h"

@interface IPadviewController : viewController_Shared {

}
于 2012-05-03T05:19:18.967 回答
0
BOOL isIPhone = (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad);

只是判断它然后使用你的单独的类来显示不同的视图

添加:

抱歉,我不使用任何 xib|nib 来构建我的应用程序,我使用纯代码,但我认为你不能使用一个带有 2 个视图控制器的 xib

只需为每个视图控制器创建 2 个 xib 或将代码组合到一个视图控制器中,如上面的代码

于 2012-05-03T02:30:05.917 回答