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