iOS черный экран на ipad, а не на iphone - PullRequest
0 голосов
/ 15 марта 2012

У меня проблема, которая застряла на пару часов.

У меня есть iPhone, который успешно прошел в App Store. Теперь я хочу, чтобы он также поддерживал iPad.

Чтобы добиться этого, я создаю новые XIB-файлы для iPad, назовите их примерно так:

iPhone: RootViewController_iPhone.xib

iPad: RootViewController_iPad.xib

Затем я устанавливаю владельца файла в порядке.

вот как я их называю:

MyViewController *vC;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    vC = [[[MyViewController alloc] initWithNibName:@"MyViewController_iPhone" bundle:[NSBundle mainBundle]] autorelease];
} else {
    vC = [[[MyViewController alloc] initWithNibName:@"MyViewController_iPad" bundle:[NSBundle mainBundle]] autorelease];
}

Внутри каждого viewcontroller я делаю некоторые пользовательские исправления макета в зависимости от текущего семейства устройств.

Это прекрасно работает для всех моих взглядов, кроме двух. Экран остается черным, что бы я ни пробовал. Я проверил это , это или это , чтобы перечислить только несколько вопросов. Видимо, я не смог это исправить.

Есть идеи, почему это происходит только для (к счастью) двух моих взглядов?

Заранее спасибо.

EDIT: Вот некоторый код инициализации:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{

    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        NSLog(@"frame: %@", NSStringFromCGRect(self.view.frame));    //frame: {{0, 0}, {768, 1004}}
        self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];     //no result here
    }
    return self;
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    UILabel *l1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 30)];
    l1.backgroundColor = [UIColor clearColor];
    l1.text = @"Zurück";
    l1.textColor = [UIColor blackColor];
    l1.textAlignment = UITextAlignmentCenter;
    l1.font = [UIFont fontWithName:@"Helvetica" size:10];
    [self.view addSubview:l1];
    [l1 release];
}

1 Ответ

0 голосов
/ 15 марта 2012

Я бы порекомендовал сделать это (не оставляя ноль в комплекте)

initWithNibName:@"RooViewController_iPad" bundle:[NSBundle mainBundle]] autorelease];

Хотя, я не знаю, поможет ли это ...

...