2011-01-04 2 views
2

私は連絡先リストをシミュレータに完全に表示しています。電話番号を入力してテキストボックスに入力します。だから私は私のiPhoneでそれを試してみることにした、実際に私がタップするものを実行します。テキストボックスに番号を入れるのではなく、番号を呼び出します。相続コード:実際に実行する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; 
} 

と申し訳ありませんが正しくフォーマットされていない場合は、StackOverflowのために新しいです。

+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

うわー。私はそれを以前に試してみて、それをテストしなかった。ありがとう。それは素晴らしい作品です! –

関連する問題