2011-12-10 2 views
0

私は自分のアプリでアドレス帳のフレームワークを実装しましたが、新しい連絡先を作成して情報を設定してから後で表示します。しかし、私が実際にビューを表示しているとき、私はそれぞれのボタンをタップすると電話アプリや電子メールアプリケーションを開くことができません。私は別のビューでレコードにアクセスするためにUnknownPersonViewControllerを使用していますiOSアドレス帳のフレームワークを使用して電話をかけたり、誰かにメールを送ることができません。

ABRecordRef record = ABPersonCreate(); 

ABMutableMultiValueRef phoneMulti = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
ABMutableMultiValueRef address = ABMultiValueCreateMutable(kABDictionaryPropertyType); 
ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABPersonEmailProperty); 
ABMultiValueAddValueAndLabel(emailMultiValue, @"[email protected]", (CFStringRef)@"email", NULL); 

CFStringRef keys[5]; 
CFStringRef values[5]; 
keys[0] = kABPersonAddressStreetKey; 
keys[1] = kABPersonAddressCityKey; 
keys[2] = kABPersonAddressStateKey; 
keys[3] = kABPersonAddressZIPKey; 
keys[4] = kABPersonAddressCountryKey; 

values[0] = CFSTR("ABC way"); 
values[1] = CFSTR("Toronto");  
values[2] = CFSTR("ON");     
values[3] = CFSTR("L1A2B3");    
values[4] = CFSTR("Canada");   //This is static 
CFDictionaryRef aDict = CFDictionaryCreate(
              kCFAllocatorDefault, 
              (void *)keys, 
              (void *)values, 
              5, 
              &kCFCopyStringDictionaryKeyCallBacks, 
              &kCFTypeDictionaryValueCallBacks 
              ); 


ABMultiValueAddValueAndLabel(address, aDict, kABHomeLabel, NULL); 
CFRelease(aDict); 

// Set up Phone Number 
ABMultiValueAddValueAndLabel(phoneMulti, @"12345678910", kABWorkLabel, NULL); 


ABRecordSetValue(record, kABPersonFirstNameProperty, firstName, NULL); 
ABRecordSetValue(record, kABPersonLastNameProperty, lastName, NULL); 
ABRecordSetValue(record, kABPersonNoteProperty, (CFStringRef)@" ", NULL); 
ABRecordSetValue(record, kABPersonAddressProperty, address, NULL); 
ABRecordSetValue(record, kABPersonEmailProperty, emailMultiValue, NULL); 
ABRecordSetValue(record, kABPersonPhoneProperty, phoneMulti, nil); 

:ここで私は情報を作成して保存する方法です。私は私のcontactDetailsViewにいるとき

ABUnknownPersonViewController *contactDetailsView = [[ABUnknownPersonViewController alloc]init]; 

contactDetailsView.allowsActions = YES; 
contactDetailsView.displayedPerson = record; 

[[self navigationController] pushViewController:contactDetailsView animated:YES]; 

は、なぜ私は(電話をかける、電子メール、メモを書く)何もできませんか?どうすれば修正できますか?

MyClass : <ABUnknownPersonViewControllerDelegate> 

は、上の動作をテストしてください:私はセット

contactDetailsView.unknownPersonViewDelegate = self; 

が続い

- (BOOL)unknownPersonViewController:(ABUnknownPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 
{ 
    return YES; 
} 

を実装そしてもちろん.hファイルが持つべきiOSの5

答えて

0

を使用していますデバイスで、シミュレータではありません

関連する問題