我有一个标签栏应用程序,在其中一个标签中我有一个地图视图。我正试图通过使用此代码点击地图视图上的注释上的公开按钮来推送新视图...
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
childController = [[AnnotationDetailView alloc] initWithNibName:@"AnnotationDetailView" bundle:nil];
[self.navigationController pushViewController:childController animated:YES];
}
但是如果我在navlog上导航它是null。
令人困惑的是,在另一个标签中,我有一个表视图,它将使用上面的代码推送视图。为什么这样做有效,但地图注释没有。
答案 0 :(得分:0)
您是否在标题中将childController
定义为 AnnotationDetailView * childController;
?
或者你可以简单地使用:
AnnotationDetailView * childController = [[AnnotationDetailView alloc] initWithNibName:@"AnnotationDetailView" bundle:nil];
答案 1 :(得分:0)
简单的答案是您的表视图位于导航控制器内,而您的地图视图则不是。标签视图控制器本身并不是导航控制器。
根据您的项目,修复可能与编辑XIB一样简单,因此导航控制器是地图选项卡的标签控制器的直接子项,地图视图控制器是该导航控制器的子项。看看你的表视图是如何定义的,你应该能够看到不同的东西。