我已經在我的RootViewController(這是一個UITableViewController)下面的代碼。當點擊導航欄中的按鈕然後(在模擬器中)顯示下一個視圖時,將執行此代碼。但是,不顯示在TripDetailsController管理的視圖中繪製的子視圖(UITextLabels,UIButtons)。此外,在屏幕頂部的導航欄中,原始視圖的「後退」按鈕不會顯示,但當我單擊導航欄的左側時,它會切換回原始視圖。未使用initWithNibName從NIB加載的子視圖
- TripDetailsController.view被鏈接到TripDetailsView(UIView的)在界面生成器
- tdController確實有一個值,所以看起來好象它被加載
- TripDetailsController是在一個單獨的NIB文件
- 使用iPhone SDK 2.2.1(所以不是3.0還)
代碼:
TripDetailsController *tdController = [[TripDetailsController alloc]
initWithNibName:@"TripDetailsController" bundle:nil];
[self.navigationController pushViewController:tdController animated:YES];
[tdController release];
在TripDetailsController I類添加viewDidLoad方法是這樣的:
代碼:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = @"Reis Details";
NSLog(@"Subviews: %@", self.view.subviews);
UILabel *l = [self.view.subviews objectAtIndex:0];
NSLog(@"Subview 0 bounds: %@", l.bounds);
}
下面的消息都表明,子視圖是有的,但也認爲邊界未設置日誌:
代碼:
6/18/09 Jun 18, 2009 10:06:00 PM ReisAdvies[11226] Subviews: (
<UILabel: 0x56f250>,
<UILabel: 0x56f5a0>,
<UILabel: 0x56f6b0>,
<UILabel: 0x56f780>
)
6/18/09 Jun 18, 2009 10:06:00 PM ReisAdvies[11226] Subview 0 bounds: (null)
在界面生成器的 「標籤大小」 標籤不顯示值X/Y/W/H。感覺就像我必須觸發它來做一些佈局活動,但在viewDidLoad()中調用layoutSubviews並沒有幫助。 任何想法可能是這裏的問題?
這是方法,但它應該已經由xcode自動完成了,如果你讓它爲你生成xib – slf 2009-06-18 20:39:26