我有一個視圖控制器,用於初始化兩個其他視圖控制器。一個控制器的視圖沒有顯示,我追蹤到問題的實例爲零時,它被添加到超級視圖。在初始化方法完成之前調用UIViewController viewDidLoad
這是代碼。在FavoritesTableVC被初始化之前調用viewDidLoad。我可以通過在resultsTableVC和favoritesTableVC視圖控制器的初始化方法中放置斷點來看到這一點。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
resultsTableVC = [[[ResultsTableVC alloc] initWithController:self andTableView:nil] retain];
favoritesTableVC = [[[FavoritesTableVC alloc] initWithFrame:CGRectMake(0, 10, self.view.frame.size.width, defaultFavoritesTableHeight) andController:self] retain];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview:resultsTableVC.view];
[resultsTableVC release];
[self.view addSubview:favoritesTableVC.view];
[favoritesTableVC release];
}
這裏是方法正在調用的順序:
- allResults初始化
- resultsTableVC初始化
- allResults viewDidLoad中
- addSubview allResultsVC
- addSubview favoritesResultsVC
- favoritesResultsVC初始化
這是一個單獨的線程,所以我不明白viewDidLoad中如何調用初始化之前完成。
好猜。我正在將此應用轉換爲通用應用。重組視圖和視圖控制器將成爲頭痛。我不確定它爲什麼這樣做,但是我認爲我現在可以解決這個問題。謝謝。 – Jim