при нажатии на новый вид навигационный контроллер не работает - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть приложение панели вкладок, и на одной из этих вкладок у меня есть вид карты. Я пытаюсь выдвинуть новое представление из нажатия кнопки раскрытия на аннотации в представлении карты, используя этот код ...

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {

childController = [[AnnotationDetailView alloc] initWithNibName:@"AnnotationDetailView" bundle:nil];       

[self.navigationController pushViewController:childController animated:YES];

}

однако если я запишу навигационный контроллер, он будет нулевым.

Что сбивает с толку, так это то, что на другой вкладке у меня есть табличное представление, которое будет выдвигать представление, используя приведенный выше код. Почему это работает, а аннотация карты - нет.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2011

Ответ прост: ваш вид таблицы находится внутри контроллера навигации, а вид карты - нет.Контроллер представления вкладок фактически не является контроллером навигации.

В зависимости от вашего проекта, исправление может быть таким же простым, как редактирование вашей XIB, так что контроллер навигации является непосредственным потомком контроллера вкладок для картывкладка, и контроллер представления карты является дочерним элементом этого контроллера навигации.Посмотрите, как определено ваше табличное представление, и вы сможете увидеть, что отличается.

0 голосов
/ 17 сентября 2011

Вы определили childController как AnnotationDetailView * childController; в своем заголовке?

или вы можете просто использовать:

AnnotationDetailView * childController = [[AnnotationDetailView alloc] initWithNibName:@"AnnotationDetailView" bundle:nil];
...