2009-08-05 22 views
3

私はマップキットとアドレス帳を一緒に使いたいiPhone iOS 3.0用のアプリを書いています。私は、名前、場所、電話番号、住所、その他のデータを持つ場所(レストランなど)のデータベースを持っています。私はテーブルビューでそれらを列挙し、私はいくつかの場所を選択すると、すべての情報を含むアドレスブックの連絡先(ABUnknownPersonViewControllerの助けを借りて)を表示したいので、ユーザーがアドレスブックにこの連絡先を簡単に追加することができます。アドレス帳とマップキット

私がアドレスをクリックすると、アプリはマップアプリに切り替わります。 MKMapView(私のアプリ内で)にこのイベントを表示するにはどうしたらいいですか?

もう1つ関連する質問。マップアプリケーションのような標準的なアドレスブックコントローラの「ここから」、「ここへの方向」のボタンを実装する方法はありますか?

+0

あなたは、あなたの質問の答えを見つけましたか?私は同じデザインが必要です。 – amok

答えて

0

ここからここまでの方向では、%fをあなたの好みの開始アドレス(saddr)と宛先アドレス(daddr)の緯度と経度に置き換えるURL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%fを使用できます。ユーザーの場所の緯度と経度から「ここ」を取得できます。このリンクはデフォルトのマップアプリケーションで開きますが、ルートが表示されます。地図アプリへの切り替えを防ぐためにABUnknownPersonViewControllerのデリゲートメソッドにおけるデフォルトのアクションインターセプトHTH

+0

ありがとう、私は標準のアドレス帳コントローラ(たとえば、ABUnknownPersonViewController)のボタン(行)を求めています。 Maps Appのように(アクセサリビューをクリックした後にアドレスを表示する方法)。 – azia

0

// ABUnknownPersonViewControllerDelegate protocol conformance 
- (BOOL)unknownPersonViewController:(ABUnknownPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 
{ 
    // Allow the default action to occur. 
    BOOL shouldPerformDefaultAction = YES; 

    // If address property was selected, do not switch to the Maps.app. 
    if (property == kABPersonAddressProperty) 
    { 
     [self.navigationController popViewControllerAnimated:YES]; 

     // Do not perform the default action  
     shouldPerformDefaultAction = NO; 

     // Show your MKMapView here 
     // .... 
    } 

    return shouldPerformDefaultAction; 
} 
関連する問題