我在XIB中创建了一个自定义视图层次结构,我希望将其放在各种其他视图控制器视图中。 SO的提示表明我必须明确添加为子视图。 XIB在调试器中加载并查看它,它看起来是正确的,但是,有两个问题。首先,它只定义了我的自定义XIB的顶层UIView,并且不显示。我有意将不同的颜色背景放在一个明显的位置。父“OtherViewController”正试图如下作为其标头是加载该自定义视图的代码:从XIB加载的iPhone SDK自定义视图不显示?
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
NSLog(@"%s", __FUNCTION__ );
if (self) {
// Custom initialization
appDelegate = (myProjectAppDelegate*) [[UIApplication sharedApplication] delegate];
NSObject *obj = [[NSBundle mainBundle] loadNibNamed:@"PageHeaderView" owner:self options:nil];
NSArray *array = nil;
if ([obj isKindOfClass:[NSArray class]]) {
array = (NSArray*) obj;
for (UIView *customView in array) {
NSLog(@"%@", customView);
if ((customView.tag == 3700) && ([customView isKindOfClass:[PageHeaderView class]])) {
[self setCustomPageHeaderView: (PageHeaderView*) customView];
[self.view addSubview: customPageHeaderView];
[self.view bringSubviewToFront: customView];
}
NSArray *array = [self.customPageHeaderView subviews];
for (NSObject *obj in array) {
NSLog(@"%s: \t%@", __FUNCTION__, obj);
}
}
} else {
NSLog(@"%s: object following loadNibNamed is [%@]", __FUNCTION__, [obj class]);
}
}
return self;
}
的TAG = 3700再次以具有在调试器的信息的明显的比特。它按预期显示在自定义视图中。
顺便说一句 - 子视图的层次结构显示在调试器中(我一定是盲目的,或者在发布代码和问题的时候意外修复了某些东西)。我无法确定他们是否是孩子或孤儿。 – mobibob
嘿所有 - 我知道它的工作原理...我为数组中的所有其他视图添加了一个else子句作为子视图并且它可以工作。我无法回答24小时的问题,所以如果有人想成为英雄,我会给予答案。 ....} else { [self.view addSubview:customView]; [self.view bringSubviewToFront:customView]; } – mobibob
再次出错 - 只有一个自定义视图及其层次结构,然后“子视图”上的循环用于连接VC的委托文本字段视图属性。 – mobibob