2009-08-05 28 views
3

我正在爲iPhone iOS 3.0編寫一個應用程序,我想一起使用地圖工具包和地址簿。我有一個名稱,位置,電話,地址和其他一些數據的地方數據庫(例如餐館)。我列出他們在一個表格視圖中,當我選擇一個地方,我想顯示地址簿聯繫人(在ABUnknownPersonViewController的幫助下),包含所有信息,因此用戶很容易將此聯繫人添加到地址簿。地址簿和地圖工具包

現在,當我點擊地址時,該應用將我切換到地圖應用。我怎樣才能抓住這個事件在我的MKMapView(在我的應用程序內部)顯示它?

還有一個相關的問題。有沒有一種方法來實現標準地址簿控制器中的「方向從這裏」,「方向到這裏」按鈕,就像在地圖應用程序中一樣?

+0

你有沒有發現你的問題的答案?我有相同的設計需求。 – amok 2010-11-17 02:12:04

回答

0

對於相關的問題,從這裏到這裏的方向,你可以使用URL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f,你可以用你喜歡的開始地址(saddr)和目標地址(daddr)的緯度和經度代替%f。您可以從用戶位置的經度和緯度獲取'here'。此鏈接將在默認的地圖應用程序中打開,但會顯示路線。 HTH

+0

感謝您的回答,但我詢問了標準通訊簿控制器(例如ABUnknownPersonViewController)中的按鈕(行)。就像在地圖應用程序中一樣(它在點擊附件視圖後顯示地址的方式)。 – azia 2009-08-05 13:12:22

0

攔截ABUnknownPersonViewController的委託方法的默認操作,以防止切換到地圖應用:

// 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; 
}