Правильно, использование троичных операторов - хороший способ, но если правильное присвоение имен xibs делает ту же работу, я бы предпочел это сделать. Я думаю, я говорю, на самом деле не отвечает на мой вопрос.

жете использовать модификатор устройства (например, ~ ipad), чтобы предоставить ключ для конкретного устройства в Info.plist и указать образ запуска для конкретного устройства (Default.png для iPhone и Default ~ ipad.png для iPad, для пример). Эти две вещи конкретно упоминаются вApple Docs, но они не говорят, что это будет работать для любых других типов файлов.

Я обнаружил (совершенно случайно), что это работает для загрузки файлов .xib черезinitWithNibName:bundle:, Так, например, у меня могут быть MyView.xib и MyView ~ ipad.xib, и этот код:

MyViewController *viewController = [[MyViewController alloc] 
                                     initWithNibName:@"MyView" bundle:nil];

... полностью загрузит MyView ~ ipad.xib на iPad и MyView.xib на других устройствах.

1) Это где-то задокументировано? Я уверен, что не смог найти ни одного документа Apple. Это, безусловно, удобнее, чем проверка UI_USER_INTERFACE_IDIOM () и жесткое кодирование двух разных имен перьев везде, но я вроде бы не верю, если это не задокументировано.

И, 2) Кто-нибудь знает, в какой версии iOS это начало работать? Я только попробовал это в 4.2, и это работает там. Модификаторы устройства в целом (даже для документированных вещей, перечисленных выше) - минимум 4,0.

Ответы на вопрос(4)

Ваш ответ на вопрос