我为iPhone和iPad创建了两个nib文件,因此我的应用程序将是通用的。
我使用此方法检查它是否是iPad:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
但是当我知道它是什么时,我不知道如何加载正确的笔尖。
有人知道加载到nib文件的正确方法吗?
答案 0 :(得分:1)
实际上,Apple会自动完成所有这些操作,只需命名您的NIB文件:
MyViewController~iphone.xib // iPhone
MyViewController~ipad.xib // iPad
并使用最少量的代码加载视图控制器:
[[MyViewController alloc] initWithNibName:nil bundle:nil]; // Apple will take care of everything
答案 1 :(得分:0)
你的界面文件的名称应该不同,所以这样的东西应该有用。
UIViewController *someViewController = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
someViewController = [[UIViewController alloc] initWithNibName:@"SomeView_iPad" bundle:nil];
}
else
{
someViewController = [[UIViewController alloc] initWithNibName:@"SomeView" bundle:nil];
}
答案 2 :(得分:0)
您应该使用初始化程序-[UIViewController initWithNibNamed:bundle:];
。
在SomeViewController.m中:
- (id)init {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (nil != (self = [super initWithNibName:@"SomeViewControllerIPad"])) {
[self setup];
}
} else {
if (nil != (self = [super initWithNibName:@"SomeViewControllerIPhone"])) {
[self setup];
}
}
return self;
}