2009-11-13 4 views

Répondre

0

Write ce morceau de code dans navigation controller.m:

ABAddressBookRef addressBook= ABAddressBookCreate(); // this will open the AddressBook of the iPhone 
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook); // this copies all the contacts from the Address Book into the array 
NSString *contactName = [[NSString alloc] init]; 

// specify the contact name to be edited 
contactName = @"ABCD"; 
for (int i =0 ;i<ABAddressBookGetPersonCount(addressBook);i++){ 
ABRecordRef ref = CFArrayGetValueAtIndex(people, i); 
NSString *firstName = (NSString *)ABRecordCopyValue(ref,kABPersonFirstNameProperty); // this gets the First Name of the person 

// check whether the editable contact exists in the AddressBook if exists then allows the user to edit the contact 
if ([contactName compare: firstName] == NSOrderedSame) { 
ABPersonViewController *personController = [[ABPersonViewController alloc] init]; 
personController.addressBook = addressBook; // this passes the reference of the Address Book 
personController.displayedPerson = ref; // this sets the person reference 
personController.allowsEditing = YES; // this allows the user to edit the details 
personController.personViewDelegate = self; 
personController.navigationItem.rightBarButtonItem = [self editButtonItem]; // this will add the inbuilt Edit button to the view 

// this displays the contact with the details and presents with an Edit button 
[[self navigationController] pushViewController:personController animated:YES]; 
[personController release]; 
} 
} 


// setEditing method needs to be overridden for edit functionality to work properly 
------------------ 
- (void)setEditing:(BOOL)flag animated:(BOOL)animated { 
[super setEditing:flag animated:animated]; 
if (flag == YES){ 
// change the view to an editable view 
[ [self navigationController] setEditing:YES animated:NO]; 
} 
else { 
// save the changes and change the view to noneditable 
[ [self navigationController] setEditing:NO animated:NO]; 
} 
} 

- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue { 
return YES; 
} 
Questions connexes