Я создал пользовательскую иерархию представлений в XIB, которую я хочу разместить в представлении различных других контроллеров представлений.Подсказки от SO указывают, что я должен явно добавить в качестве подпредставления.XIB загружается и просматривает его в отладчике, выглядит корректно, однако есть две проблемы.Во-первых, он определяет только верхний уровень UIView моего пользовательского XIB, и он не отображается.Я специально наложил другой цвет фона, чтобы сделать его очевидным.Код родительского «OtherViewController», который пытается загрузить это настраиваемое представление в качестве заголовка, выглядит следующим образом:
- (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 снова должен был содержать очевидный бит информации в отладчике.Это отображается в пользовательском представлении, как и ожидалось.