2013-02-25 7 views
5

私はストーリーボードで作成したメインビューのサブビューでiOS用Google Maps SDKを使用しようとしていますが、IBOutlet経由でビューコントローラにリンクしていますUIViewからサブクラス化されたextraViewと呼ばれる)。 SDKの入門ガイドの手順に従えば、SDKはうまく動作しますが、階層の中の一番上のビュー(メインビュー)を使用します。これは不要です。マップを画面のより小さな部分に配置し、残りの部分を別のものに使用します。 self.viewの代わりにself.extraViewにmapView_オブジェクトを割り当てようとすると、画面全体が黒くなり、コンソール出力にエラーが表示されます。メインビュー以外のビューでGoogle Maps SDKを使用する

"アプリケーションウィンドウは、アプリケーションの起動の最後にルートビューコントローラを持っている "

他に誰かがこれを理解しましたか?ドキュメントに何も見つかりません.Googleが提供するサンプルコードではストーリーボードを使用していません。

答えて

13

はここ

  • あなたはクラスがアイデンティティインスペクタでGMSMapViewすることがあります
  • セットを作業しているビューコントローラへのUIViewを追加する方法...です。

他のコンセントと同じように、コントロールドラッグしてコードにドラッグします。

あなたが遅延し、Googleのサンプルコードになるマップを表示するには...そのセッターに

- (void) setMapView:(GMSMapView *)mapView { 
    if (!mapView) { 
     mapView = [[GMSMapView alloc] initWithFrame:mapView.bounds]; 
    } 
    _mapView = mapView; 
} 

それをインスタンス化することができます...

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285 
                  longitude:103.848 
                   zoom:12]; 
    self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 
+0

おかげで、クラスです。残念ながら、私はまだ同じ問題に遭遇しています。私は他のプロジェクトでいくつか余分なものを持っていたので、私は手紙へのGoogleの指示に従い、新しいプロジェクトを作成しました。期待通りに機能していたので、loadViewメソッドからコードをクリアして、指示に正確に従っています。私は2番目のコードブロックをdrawMapというメソッドに配置しました。このメソッドは、performSelector:withObject:afterDelay:を5の後に使用して、viewDidLoadメソッドによって呼び出されます。これは、マップが描画される前に警告が表示されることを示しました。 drawMapはまだ呼び出されますが、マップは描画されません。 – user2105505

+2

私はそれを理解しました!あなたのソリューションは完全に機能しました。空のloadViewメソッドを削除するのを忘れてしまいました。それには何もなかったので、このエラーを引き起こしていました。ありがとう! – user2105505

+0

それはすばらしかった:D – Omarj

3

私はちょうどそのloadViewメソッドのコードを削除し、私の問題を解決し私はその例から抜け出した。 sberleyが表示されるようにビューを追加するだけでうまくいくはずです。

ちょうどより多くの事に、アイデンティティインスペクタ上で、変更する必要があり、その属性は、少なくともそれは、Xcodeの上であなたの迅速な対応のための4.5

+0

ありがとう - 私はあなたの提案を反映するために上記を明確にした – sberley

関連する問題