ios - 加载不同的 xib

标签 ios iphone objective-c xib

在我的应用程序中,我必须加载 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/

相关文章:

ios - (空): Linker command failed with exit code 1 (use -v to see invocation) when use admob

iphone - 为什么 NSCalendar 的 dateFromComponents 返回错误的日期?

ios - UIScrollView初始偏移量

Objective-C - NSXML 读取我不会读取的新行

ios - AFNetworking 发布请求

ios - 在 MKMapView 中围绕用户位置绘制一个半径为 1000m 的圆

ios - 为什么我的 UINavigtionController 栏只有在我覆盖它时才会在 iOS 7 上错误定位?

iphone - 通过SDK覆盖iPhone快门声音

iphone - 未知类型考试和未知类型 AppDelegate 错误

ios - 仅在单元格中的特定 UIImage 上从 UITableView 推送详细 View ?