Мой RootViewController - это UITableViewController. Программно добавляется UINavigationController:
_navigationController = [[[UINavigationController alloc] initWithRootViewController:_rootViewController] autorelease];
[self.window addSubview:_navigationController.view];
[self.window makeKeyAndVisible];
В RootViewController.m должен загружаться DetailViewController при выборе строки:
- (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, поэтому что-то не так с navigationController.
Я попытался поместить все в AppDelegate и использовать switchView. Проблема заключается в вызове setDetailItem, который я не могу вызвать, если работаю с методом переключения.
Каким будет правильный способ загрузить DetailView из RootViewController в стек навигации и, возможно, больше из DetailViewController позже?
Обновление. Я снова начал с самого начала с оконного приложения. Добавил UITableViewController как «RootViewController» и инициализировал его с помощью UINavigationController в AppDelegate (ничего не сделал в XIB). Когда я пытаюсь установить self.navigationController.title = @ "Test"; в ViewDidLoad ничего не происходит.
Что там не так?