二,联系人详细信息界面
界面如下:
首先,还是需要在头文件中导入联系人读取所需要的包,并且定义联系人类对象,这个对象通过前一个页面的传值来赋值。
#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
@interface ZjDetailViewController : UITableViewController
@property(nonatomic,assign) ABRecordRef person;
@end
在这里,关于tableView中组数,行数以及拨打电话函数的设置参考前一个界面制作的讲解,这里指说明一下每一行显示内容的显示:
- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:@"normalCell"];
if (cell ==nil) {
cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2reuseIdentifier:@"normalCell"];
}
if(indexPath.row<2){
//前两行显示姓氏和名字,用一种cell风格
[cellsetSelectionStyle:UITableViewCellSelectionStyleNone];
}else{
//后面的显示电话号码,用另一种cell风格
[cellsetSelectionStyle:UITableViewCellSelectionStyleBlue];
}
NSString *title;
NSString *text;
//设置内衣航线是的具体内容
switch (indexPath.row) {
case 0:
title = @"FirstName";
text = (__bridge NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
break;
case 1:
title = @"LastName";
text = (__bridge NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
break;
default:
title = @"Phone";
ABMultiValueRef phoneNums =ABRecordCopyValue(person, kABPersonPhoneProperty);
if(phoneNums &&ABMultiValueGetCount(phoneNums)>0){
//如果有至少一个电话号码
text = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNums, indexPath.row - 2);
}
break;
}
cell.textLabel.text = title;
cell.detailTextLabel.text = text;
return cell;
}