我在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