У меня проблема, которая застряла на пару часов.
У меня есть 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];
}