【发布时间】:2012-03-15 14:45:35
【问题描述】:
我遇到了一个问题,我被困了几个小时。
我有一部 iPhone 已成功进入 App Store。现在我希望它也支持 iPad。
为了实现这一点,我为 iPad 创建了新的 XIB 文件,将它们命名为:
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];
}
然后,在每个视图控制器中,我会根据当前设备系列进行一些自定义布局修复。
这对我所有的观点都很好,除了其中两个。 无论我尝试了什么,屏幕都保持黑色。 我检查了this、this 或this,只列出了几个问题。显然我无法解决这个问题。
任何想法为什么这只发生在(幸运的是)我的两个观点?
提前致谢。
编辑: 下面是一些初始化代码:
- (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];
}
【问题讨论】:
-
我确实相信您的问题在于视图本身...您能否提供更多有关它们的信息..
-
您检查过 nib 文件中的所有链接吗? mainView 是否正确连接到
view属性?是否设置了 fileOwner?您是否在viewDidLoad中进行任何额外的初始化? -
我发布了一些初始化代码。我一遍又一遍地比较了 nib 文件,我无法找到与其他 nix 的任何区别
-
您是否已将 .xib 的视图属性与实际视图相关联?还要确保在 .xib 的属性中设置了 MyViewController 类。
标签: ios objective-c ipad window screen