在我的应用程序中,我必须加载 2 个不同的 .xib:一个支持 iPhone 4/4s 的视网膜 3.5 显示屏,一个支持 iPhone 5/5c/5s 的视网膜 4 显示屏。 我这样做了: 首先我以这种方式定义了一个常量:
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
我用这个方法来加载不同的 xib 文件:
- (IBAction)callViewController:(UIButton *)sender {
if (IS_IPHONE_5) {
ScannerViewController *scannerVC = [[ScannerViewController alloc]initWithNibName:@"ScannerViewControllerRetina4" bundle:nil];
[scannerVC setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:scannerVC animated:YES completion:nil];
} else {
ScannerViewController *scannerVC = [[ScannerViewController alloc]initWithNibName:@"ScannerViewController" bundle:nil];
[scannerVC setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:scannerVC animated:YES completion:nil];
}
}
我创建了 2 个 xib:ScannerViewController 和 ScannerViewControllerRetina4。当我使用 Retina 3.5 在模拟器上运行该应用程序时,它可以正常工作,但是当我使用 Retina 4 运行该应用程序时,它显示:loaded the "ScannerViewControllerRetina4" nib but the view outlet was not set.
我将 2 xib 文件的所有者关联到类 ScannerViewController
我的代码有什么问题?我该如何解决?
最佳答案
只需将您的 UIViewController
导出连接到您的主视图。您可以通过控制从 ScannerViewControllerRetina4 拖动到您的主视图来做到这一点。
关于ios - 加载不同的 xib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19855265/