После просмотра проекта кажется, что вы не создали UINavigationController.Итак, я предлагаю вам использовать этот код для application:didFinishLaunchingWithOptions:
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UINavigationController* navigation = [[UINavigationController alloc] init];
[navigation pushViewController:viewController animated:NO];
[window addSubview:navigation.view];
[self.window makeKeyAndVisible];
return YES;
}
Здесь создается экземпляр UINavigationController и на него помещается ваш первый (корневой) контроллер.
Важно : ваше приложение имеет больше проблем, поэтому оно не будет работать, но по крайней мере ваш контроллер DetailView будет загружен и попытается отобразить его.О найденных проблемах:
в didSelectRowAtIndexPath
вы используете неправильное имя пера;
в DetailViewController
viewDidLoad
вы используете свойство CL.title
, которое не определено;
после устранения этих проблем может появиться подробный вид.
СТАРЫЙ ОТВЕТ:
Установите точку останова в tableView:didSelectRowAtIndexPath:
и убедитесь, что ваш DetailViewController
создан правильно, а также что self.navigationController
не ноль.
В качестве альтернативы вы можете добавить трассировки NSLog в свой код (этоважная техника отладки):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Initialize the detail view controller and display it.
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.CL = [self.books objectAtIndex:indexPath.row];
[self.navigationController pushViewController:dvController animated:YES];
NSLog(@"navController: %@", [self.navigationController description]);
NSLog(@"dvController.CL: %@", [dvController.CL description]);
// [self presentModalViewController:dvController animated:YES];
// [self.view addSubview:dvController.view];
[dvController release];
}