我有一个通用的应用程序,我试图共享一个viewController代码。我有这样的:动态加载xib但错误显示
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,但它似乎永远是装的iPad版。我知道这是因为在iPhone的xib文件中,我手动添加了不同的背景图像,并且它从不显示。在iPhone模拟器中,它显示了iPad屏幕外的版本。另外,如果我单步执行控制器中的代码,它确实表明加载是iPhone,但显示器是所有iPad对象。在iPhone xib中,我将文件所有者设置为AboutController。
这是我第一次尝试“共享代码”。我知道我可以用相同的代码创建单独的类文件,但这似乎毫无意义。任何帮助是极大的赞赏。
地理...
我们可以看到AboutController的initWithNibName方法吗?这可能是问题的出处。另外,这可能是放置这种逻辑的更好的地方。只是一个想法。 – picciano
是的,它确实有一个我注释掉了,它仍然只加载iPad版本。 – George