我的RootViewController是一個UITableViewController。一個UINavigationController的編程方式添加:添加UIViewController到UINavigationController的問題
_navigationController = [[[UINavigationController alloc] initWithRootViewController:_rootViewController] autorelease];
[self.window addSubview:_navigationController.view];
[self.window makeKeyAndVisible];
在當選擇連續DetailViewController應加載的RootViewController.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Switch to detail");
CCouchDBDocument *selectedObject = [self.contentsList objectAtIndex:indexPath.row];
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
[self.view addSubview:detailViewController.view];
[detailViewController setDetailItem: selectedObject];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
沒有addSubView沒有任何反應在屏幕上。我之前見過的所有例子都只使用pushViewController。並且,加載DetailView大約需要4秒鐘。這太長了(目前它是空的,只有一個標籤)。當我嘗試設置navigationTitle(self.title = @「Hello」;)時,標題與RootViewController保持一致,所以導航控制器必須有錯誤。
我試圖把所有東西放在AppDelegate中,並使用switchView方法。問題是setDetailItem的調用,如果我使用switch方法,則無法調用它。
將RootViewController中的DetailView加載到導航堆棧中以及可能更多來自DetailViewController的正確方法是什麼?
更新 我從頭再次開始使用基於Window的應用程序。添加一個UITableViewController作爲「RootViewController」,並使用AppDelegate中的UINavigationController對其進行初始化(在XIB中完全沒有)。當我嘗試設置self.navigationController.title = @「Test」;在ViewDidLoad中,沒有任何反應。
有什麼不對?
不,也沒有改變。那裏有些嚴重錯誤。 – Patrick 2011-06-10 18:08:14
它是self.navigationItem.title你需要改變我認爲,_not_ self.navigationController.title - 同樣,如果你是以編程方式構建視圖,你可能需要在loadView中設置它(我使用nibs並在initWithNibName中設置它: ) – 2011-06-15 09:58:25
還有一些其他問題。從頭開始,現在很好。謝謝! – Patrick 2011-06-15 20:53:10