我有一个选项卡式应用程序,其中一个选项卡是地图视图。用户将图钉放置在某个位置,并且在注释标注中有一个披露按钮。我希望此按钮可以推送到包含有关注释的更具体详细信息的详细信息视图。我已经搜索了相关问题,但似乎没有一个问题与我有同样的问题。单击公开按钮时,应用程序崩溃并出现异常:'NSInvalidArgumentException',原因:'-[MapView tableView]: unrecognized selector sent to instance 0x8434360'
这是我尝试推送详细视图控制器的地方。log 语句返回一个导航控制器,因此向 nil 发送消息不是问题。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
DetailViewController *dvc = [[DetailViewController alloc] init];
NSLog(@"%@", [self navigationController]);
[[SpotsStore defaultStore] setSelectedSpot:[view annotation]];
[[self navigationController] pushViewController:dvc animated:YES];
}
我在应用程序委托中实例化了导航控制器:
UINavigationController *mapnc = [[UINavigationController alloc] initWithRootViewController:mv];
[mapnc setNavigationBarHidden:NO];
[[mapnc tabBarItem] setTitle:@"Map"];
[[mapnc tabBarItem] setImage:[UIImage imageNamed:@"mapicon.png"]];
[tbc setViewControllers:[NSArray arrayWithObjects:nc,mapnc, nil]];
// nc is a different navigation controller I instantiated earlier.
[[self window] setRootViewController:tbc];
我真的很想得到任何帮助,或者只是把我送到正确的方向。我找不到有关发送方法 tableView 的导航控制器的任何信息。或者为什么它在这种情况下不起作用。