2011-01-04 3 views
2

연락처 목록이 시뮬레이터에 완벽하게 표시됩니다. 전화 번호를 가져 와서 텍스트 상자에 넣습니다. 그래서 나는 그것을 내 아이폰에서 시험해보기로 결심했고, 실제로 내가 터프하는 것을 실행한다. 그것은 숫자를 ito 텍스트 상자에 넣는 대신 번호를 호출합니다. 유래에 새로운, 제대로 포맷되지 않은 경우ABPeoplePickerNavigationController 실제로 실행

- (IBAction) adressBook: (id) sender { 
// creating the picker 
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
// place the delegate of the picker to the controll 
picker.peoplePickerDelegate = self; 

// showing the picker 
[self presentModalViewController:picker animated:YES]; 
// releasing 
[picker release]; 
} 


- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { 
    // assigning control back to the main controller 
[self dismissModalViewControllerAnimated:YES]; 
} 
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person { 

/* 
ABMultiValueRef multi = ABRecordCopyValue(person, kABPersonPhoneProperty); 
num.text = (NSString*)ABMultiValueCopyValueAtIndex(multi, 0); 


    //[self dismissModalViewControllerAnimated:YES]; 
*/ 
    return YES; 
} 

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{ 
NSLog(@"inbool"); 
ABMultiValueRef phonePro = ABRecordCopyValue(person, property); 
int idx = ABMultiValueGetIndexForIdentifier(phonePro, identifier); 
num.text = (NSString*)ABMultiValueCopyValueAtIndex(phonePro, idx); 


[self dismissModalViewControllerAnimated:YES]; 
/* 
ABMultiValueRef multi = ABRecordCopyValue(person, property); 
num.text = (NSString*)ABMultiValueCopyValueAtIndex(multi, identifier); 
*/ 


return YES; 
} 

미안 :을 heres 코드.

+0

"형식이 잘못 지정되면 죄송합니다. new to stackoverflow"? 게시물 서식 지정에 대한 지침은 편집 창 옆에 있습니다. – yuji

답변

5

peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:NO을 반환해야 휴대 전화가 기본 동작을 수행하지 않습니다. 그런 다음 피커를 직접 닫습니다.

-(BOOL) peoplePickerNavigationController: (ABPeoplePickerNavigationController *) peoplePicker 
     shouldContinueAfterSelectingPerson: (ABRecordRef) person 
           property: (ABPropertyID) property 
           identifier: (ABMultiValueIdentifier) identifier 
{ 
    NSLog(@"inbool"); 
    ABMultiValueRef phonePro = ABRecordCopyValue(person, property); 
    int idx = ABMultiValueGetIndexForIdentifier(phonePro, identifier); 
    num.text = (NSString)ABMultiValueCopyValueAtIndex(phonePro, idx);        

    [peoplePicker dismissModalViewControllerAnimated: YES]; 

    return NO; 
} 
+0

와우. 나는 그것을 조기에 시험해보고 그것을 시험하지 않았다. 감사. 그것은 위대한 작품! –