Загрузка разных файлов пера - PullRequest
0 голосов
/ 08 июня 2011

Я создал два файла перьев для iPhone и iPad, поэтому мое приложение будет универсальным.

Я использую этот метод, чтобы проверить, является ли это iPad:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

но я не знаю, как загрузить правильный перо, когда оно знает, что это такое.

Кто-нибудь знает правильный метод загрузки в файл пера, соответственно?

Ответы [ 3 ]

1 голос
/ 30 июня 2014

На самом деле, Apple делает все это автоматически, просто назовите ваши файлы NIB:

MyViewController~iphone.xib // iPhone
MyViewController~ipad.xib // iPad

и загрузите ваш контроллер представления с наименьшим количеством кода:

[[MyViewController alloc] initWithNibName:nil bundle:nil]; // Apple will take care of everything
0 голосов
/ 08 июня 2011

Вы должны использовать инициализатор -[UIViewController initWithNibNamed:bundle:];.В вашем SomeViewController.m:

- (id)init {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        if (nil != (self = [super initWithNibName:@"SomeViewControllerIPad"])) {
            [self setup];
        }
    } else {
        if (nil != (self = [super initWithNibName:@"SomeViewControllerIPhone"])) {
            [self setup];
        }
    }
    return self;
}
0 голосов
/ 08 июня 2011

Ваши файлы интерфейса должны называться по-разному, чтобы что-то подобное работало.

UIViewController *someViewController = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    someViewController = [[UIViewController alloc] initWithNibName:@"SomeView_iPad" bundle:nil];
}
else
{
    someViewController = [[UIViewController alloc] initWithNibName:@"SomeView" bundle:nil];
}
...