私はiOS開発に比較的慣れておらず、Google Maps APIを使用するのはまったく初めてです。
マップビューが必要な2つの別々のビューがあります。1 つ目は、地図上で場所を検索したり、住所を入力したり、現在地を使用したりできるシーンです。次のシーンでは、前のシーンでユーザーが入力したのと同じ場所を使用したいのですが、通常の地図ではなく航空写真を使用したいと考えています。また、目的に合わせて地図を操作するための追加ツールがいくつかあります。私のアプリの。
インターフェイスが大きく異なるため、2 つの別個のシーンが必要ですが、あるマップビューから別のマップビューに情報を送信するのに問題があります。これが私が試したいくつかの方法です(2つはコメントアウトされています):
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showServiceArea"]) {
ServiceAreaViewController *destViewController = segue.destinationViewController;
destViewController.camera = [GMSCameraPosition cameraWithLatitude:curLocation.location.coordinate.latitude longitude:curLocation.location.coordinate.longitude zoom:17]; //Setting up a camera in the next scene using the curLocation coordinates from the current view
//destViewController.view = _mapView; //Setting the next view controller's view to the current mapView and changing the mapType to satellite
//_mapView.mapType = kGMSTypeSatellite;
//destViewController.serviceAreaMapView = _mapView; //copying the current mapview to a mapview on the next scene
//destViewController.serviceAreaMapView.mapType = kGMSTypeSatellite;
}
}
私が試したすべての方法で例外がスローされ、アプリがクラッシュしました。上記のコードのクラッシュからの出力は次のとおりです。
キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[UIViewController setCamera:]: 認識されないセレクターがインスタンス 0x17e73eb0 に送信されました'
コメントアウトされた最初の 2 つのメソッドについては、次のシーンが読み込まれるまでに、次のビューに割り当てたデータが削除されていることがわかりました。現在のコードの何が問題なのかわかりません。
現在のシーンのデータを使用して、次のシーンで mapView を生成するために正しい方向に私を向けることができますか? ありがとう。