Iphone 动态加载xib,但显示错误

Iphone 动态加载xib,但显示错误,iphone,xcode,ipad,Iphone,Xcode,Ipad,我有一个通用应用程序,我正试图与之共享viewController代码。我有这个: if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { AboutController *screen = [[AboutController alloc] initWithNibName:@"iPhoneAboutController" bundle:nil]; screen.modalT

我有一个通用应用程序,我正试图与之共享viewController代码。我有这个:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    AboutController *screen = [[AboutController alloc] initWithNibName:@"iPhoneAboutController" bundle:nil];
    screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:screen animated:YES];    
}
else
{
    AboutController *screen = [[AboutController alloc] initWithNibName:nil bundle:nil];
    screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:screen animated:YES];    
}
虽然这是正在加载的,当我一步一步地浏览代码时,它确实击中了iPhone的xib,但它似乎总是在加载iPad版本。我知道这一点,因为在iPhone的xib文件中,我手动添加了不同的背景图像,但它从未显示出来。在iPhone模拟器中,它显示了iPad版本的屏幕外显示

此外,如果我在控制器中单步执行代码,它确实显示加载的是iPhone,而显示的是所有iPad对象。在iphonexib中,我将文件所有者设置为AboutController

这是我第一次尝试共享代码。我知道我可以用相同的代码创建单独的类文件,但这似乎毫无意义。非常感谢您的帮助


Geo…

对于初学者:确保不要覆盖AboutController中的nib初始化


如果没有,请尝试清理项目并删除~/Library/Developer/Xcode/DerivedData中应用程序的文件夹。还可以从设备上卸载应用程序,然后重新构建。

尝试了所有这些,但它仍然会为iPad加载xib。啊!我们可以从AboutController中看到initWithNibName方法吗?这可能就是问题所在。此外,这可能是一个更好的地方,把这种逻辑。只是一个想法。是的,它确实有一个我评论过的版本,它仍然只加载iPad版本。