아이 폰 주소록 Address Book.framework 와 Address BookUI.framework 의 응용
이 두 프레임 워 크 를 사용 하면 프로그램 에서 아이 폰 데이터베이스 에 있 는 연락처 정 보 를 방문 하고 표시 할 수 있 습 니 다.
1.AddressBookUI 디 스 플레이 부분
AddressBookUI 에 서 는 연락처 표시 정보 와 관련 된 일부 Controller 를 제공 합 니 다.네 가지 가 있 습 니 다.
ABPeople PickerNavigation Controller:전체 주소록 을 표시 하고 연락처 정 보 를 선택 할 수 있 습 니 다.
ABPersonViewController:구체 적 인 연락처 정보 표시
ABNewPersonViewController:새로운 연락처 추가
ABUnknown PersonViewController:연락처 정보 보완
그 중에서 가장 중요 한 것 은 ABPeople PickerNavigation Controller 이기 때문에 프로그램 을 통 해 전체 주소록 을 표시 하고 그 중의 한 연락처 정 보 를 선택 할 수 있 는 절 차 를 구체 적 으로 소개 한다.
(a)ABPeople PickerNavigation Controller 대상 을 만 들 고 초기 화 합 니 다.
(b)프 록 시 설정(delegate)
(c)presentModalViewController:animated:이 방법 으로 전체 주소록 페이지 를 표시 합 니 다.
예:
- (IBAction)showPicker:(id)sender {
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
ABPeople PickerNavigation Controller Delegate 방법 소개
(1)
peoplePickerNavigationControllerDidCancel:
사용자 가 취 소 를 선택 할 때 이 방법 을 사용 하면 이 방법 에서 전체 주소록 페이지 의 표 시 를 취소 할 수 있 습 니 다.
(2)
peoplePickerNavigationController:shouldContinueAfterSelectingPerson:
사용자 가 주소록 의 어떤 연락 처 를 선 택 했 을 때 이 방법 을 사용 하면 연락처 의 정 보 를 얻 을 수 있 습 니 다.이 연락처 의 더 구체 적 인 정 보 를 계속 표시 하고 싶다 면 return YES.그렇지 않 으 면 전체 주소록 페이지 의 표 시 를 취소 하고 return NO.
(3)
eoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:
이전 방법 이 YES 로 되 돌아 오 면 어떤 연락처 정보 가 표 시 됩 니 다.연락처 의 어떤 기록 을 선택 하면 이 방법 을 사용 합 니 다.클릭 을 통 해 연락처 의 특정한 정 보 를 선택 할 수 있 습 니 다.선택 한 기록 에 대해 진일보 한 조작 을 하고 싶다 면,예 를 들 어 직접 전 화 를 하거나 메 일 로 메 일 을 보 내 면 return YES.그렇지 않 으 면 전체 주소록 페이지 의 표 시 를 취소 하고 return NO.
===============================examples=======================================
예:
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
// assigning control back to the main controller
[picker dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
//연락처 이름 가 져 오기
name.text = (NSString*)ABRecordCopyCompositeName(person);
//연락처 받 기
ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSMutableArray *phones = [[NSMutableArray alloc] init];
int i;
for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {
NSString *aPhone = [(NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i) autorelease];
NSString *aLabel = [(NSString*)ABMultiValueCopyLabelAtIndex(phoneMulti, i) autorelease];
NSLog(@"PhoneLabel:%@ Phone#:%@",aLabel,aPhone);
if([aLabel isEqualToString:@"_$!
{
[phones addObject:aPhone];
}
}
phoneNo.text=@"";
if([phones count]>0)
{
NSString *mobileNo = [phones objectAtIndex:0];
phoneNo.text = mobileNo;
//NSLog(mobileNo);
}
//연락처 메 일 가 져 오기
ABMutableMultiValueRef emailMulti = ABRecordCopyValue(person, kABPersonEmailProperty);
NSMutableArray *emails = [[NSMutableArray alloc] init];
for (i = 0;i < ABMultiValueGetCount(emailMulti); i++)
{
NSString *emailAdress = [(NSString*)ABMultiValueCopyValueAtIndex(emailMulti, i) autorelease];
[emails addObject:emailAdress];
}
email.text=@"";
if([emails count]>0)
{
NSString *emailFirst=[emails objectAtIndex:0];
email.text = emailFirst;
//NSLog(emailFirst);
}
[peoplePicker dismissModalViewControllerAnimated:YES];
return NO;
}
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier{
return NO;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
node.js 파충류 프레임워크 node-crawler 첫 체험바이두 파충류라는 단어는 일반적으로 나타나는python 관련 자료이다. py에도 파충류 프레임이 많은데, 예를 들면 scrapy, Portia, Crawley 등이다. 이전에는 개인적으로 C#로 파충류를 만드는 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.