1

这是一个简单的问题,我找不到任何东西,但是有没有办法命名您的 xib 文件,以便 ios 知道根据版本将一个 xib 文件放在另一个文件上。如果你想为一个类获取一个 xib 文件,你将 xib 文件命名为与类相同 例如:ViewController.m ViewController.xib

如果要指定 iphone 或 ipad,请应用波浪号 iphone/ipad EX:ViewController~iphone.xib ViewController~ipad.xib

所以重申这个问题,ios 5.X 和 ios 6.X 是否有命名约定?

我问这个是因为 ios 6.0 有一些关于 NSLayOutConstraints 和属性标签的不错的功能,我想使用这些功能但一个版本不支持。我最终禁用了自动布局而不使用属性标签,这样我就可以拥有 1 个代码库并且时间是因素。

当然我知道我能做到

if (mainWindow.frame.size.height == 568) {
   [[UIViewController alloc] initWithNib@"xibname"];
}

而且我知道我可以创建一个类来获取 NSString 并根据屏幕大小为 xib 文件创建正确的字符串,但是如果我可以先使用这些方法并使用内置的东西那就更好了。

4

1 回答 1

1
+ (NSString *)getNibNameForName:(NSString *)name {
    if (IsiPhone4Inch) {
        NSString *possibleNibName = [NSString stringWithFormat:@"%@_iPhone4Inch", name];
        if ([[NSBundle mainBundle] pathForResource:possibleNibName ofType:@"nib"] != nil) {
            return possibleNibName;
        }
    }

    return [NSString stringWithFormat:IS_IPAD ? @"%@_iPad":@"%@", name];
}
于 2013-06-05T14:19:47.770 回答