タブの 1 つがマップ ビューであるタブ付きアプリケーションがあります。ユーザーが場所にピンを配置すると、注釈の吹き出しに開示ボタンがあります。このボタンを押すと、注釈に関するより具体的な詳細が表示される詳細ビューが表示されます。関連する質問を検索しましたが、私と同じ問題を抱えているものはないようです。開示ボタンをクリックすると、次の例外でアプリケーションがクラッシュします: 'NSInvalidArgumentException', reason: '-[MapView tableView]: unrecognized selector sent to instance 0x8434360'
これは、詳細ビュー コントローラーをプッシュしようとする場所です。ログ ステートメントはナビゲーション コントローラーを返すため、メッセージを 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を送信するナビゲーションコントローラーについては何も見つかりませんでした。または、この場合に機能しない理由。