我正在处理一个地址簿项目,我的要求之一是在使用我的应用程序手动添加新联系人时,它应该检查用户是否输入了“组织字段”值。
我的导航栏上有 Add(+) 按钮,其中包含以下代码片段:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self
action:@selector(add:)];
self.navigationItem.rightBarButtonItem = addButton;
通过本机通讯簿单击此添加按钮时会出现当前模式视图;
-(void)add:(id)sender
{
ABNewPersonViewController *view = [[ABNewPersonViewController alloc] init];
view.newPersonViewDelegate = self;
UINavigationController *newNavigationController = [[UINavigationController alloc] initWithRootViewController:view];
[self presentModalViewController:newNavigationController animated:YES];
}
- (void)newPersonViewController:(ABNewPersonViewController *)newPersonView didCompleteWithNewPerson:(ABRecordRef)person
{
newPersonView.displayedPerson = person;
[self dismissModalViewControllerAnimated:YES];
[table reloadData];
}
在将联系人保存到我的地址簿之前,我想检查用户是否添加了“组织字段”。在空白/无的情况下,我想显示一个警告框,要求填写组织值。这是强制性的,一旦用户提供组织值,联系人就会被保存到地址簿。
编辑:正如法比奥在下面建议的那样,我更新了我的代码..
- (void)newPersonViewController:(ABNewPersonViewController *)newPersonView didCompleteWithNewPerson:(ABRecordRef)person{
NSString *company = [NSString stringWithFormat: @"%@", ABRecordCopyValue(person, kABPersonOrganizationProperty)];
if ([company isEqualToString: @"(null)"]) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Value Required!" message:@"Please provide some value for ORGANIZATION Field..." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
}
else
{
newPersonView.displayedPerson = person;
[self dismissModalViewControllerAnimated:YES];
}
}
有了这个,我可以向用户显示警报以提供字段值。它还在更新创建的后续记录。但是,当 MODAL VIEW 被关闭时,详细视图(Native App 的信息屏幕)不会显示有关联系人的信息。
此外,取消按钮不能以常规方式工作..我无法返回应用程序,因为它反复要求提供字段值,即使我提供并按下取消也是如此。
谁能指导我!
感谢和问候