我正在使用 Apple 的通讯录做一个简单的联系人应用程序,并且按照他们的开发者网站中提供的方式,我已经设法创建了联系人应用程序。但是我的删除功能有问题。我添加了删除代码
[picker setValue:[NSNumber numberWithBool:YES] forKey:@"allowsDeletion"];
并出现删除按钮,但是当我单击删除时它没有响应,但下次重新加载时联系人确实被删除了。我已经搜索过,但找不到合适的解决方案,似乎每个人都有同样的问题。
现在我计划在 PeoplePickerNavigationController 上添加滑动删除功能。我找到了有关如何在 PeoplePickerNavigationController 上标记联系人的代码,它可以工作。现在我正在尝试调整代码以添加滑动删除功能,但我无法实现它。你能帮我修改删除时滑动的代码吗?这是我单击联系人时打勾的代码。我需要替换此事件以在删除时滑动。
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
UIView *view = peoplePicker.topViewController.view;
UITableView *tableView = nil;
for(UIView *uv in view.subviews)
{
if([uv isKindOfClass:[UITableView class]])
{
tableView = (UITableView*)uv;
break;
}
}
if(tableView != nil)
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:[tableView indexPathForSelectedRow]];
if(cell.accessoryType == UITableViewCellAccessoryNone){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else{
cell.accessoryType = UITableViewCellAccessoryNone;
}
[cell setSelected:NO animated:YES];
}
return NO;
}
这是我创建的函数,当我单击删除按钮时应该调用它,但是您可以添加自己的删除函数,只要它有效。
-(void)deleteContct
{
ABAddressBookRef addressBook= ABAddressBookCreate();
ABAddressBookRemoveRecord(addressBook, (ABRecordRef)person,NULL);
ABAddressBookSave(addressBook, NULL);
}