我正在编写我的第一个通用应用程序,我已经转换了我的笔尖,以便有iPad和iPhone版本。
iPad版本位于Resources-iPad文件夹中,名为“InfoViewController-iPad.xib”。主文件夹中的iPhone版本,名为“InfoViewController.xib”
我有以下操作来显示相关的xib
-(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
infoViewController = [[InfoViewController alloc] initWithNibName:@"Resources-iPad/InfoViewController-iPad" bundle:nil];
}
else
{
infoViewController = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil];
}
infoViewController.delegate = self;
infoViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:infoViewController animated:YES];
[infoViewController release];
}
当它在iPhone上运行时它工作正常,但在iPad上运行时会崩溃。 任何帮助都会非常值得赞赏
答案 0 :(得分:1)
您不需要将文件夹名称放在iPad版本的笔尖名称中,只要它的名称与iPhone版本不同,就可以找到它。
如果从initWithNibName中删除该文件夹不适合您,请编辑您的问题并从控制台发布回溯的结果。
答案 1 :(得分:0)
您不应该在iPad笔尖的名称上使用Resources-iPad/
前缀。 iOS知道如何在捆绑中查找资源。您在Xcode中看到的文件夹层次结构仅用于组织文件和开发人员的利益。