正确的方式使用ABPersonViewController?

时间:2012-04-23 20:41:00

标签: ios cocoa-touch abaddressbook

我对Objective-C很新,所以如果我遗漏了你认为显而易见的东西,我会提前感到抱歉:)

我写了一个简单的程序来显示地址簿,然后选择一个用户(模仿iOS联系人列表)。

我有一个基本的控制器:

@interface BasicViewController : 
UIViewController<ABPersonViewControllerDelegate>

控制器从先前视图接收ABRecordRef。 在我的一种方法中,我使用:

ABPersonViewController* ctrl = [[ABPersonViewController alloc]init];

ctrl.allowsEditing = NO;
[ctrl setPersonViewDelegate:self];
[ctrl setDisplaydPerson:person];

[self setView:ctrl.view];
[self.navigationController pushViewController:ctrl animated:
YES];

当我到达实际视图时,我得到一个空白屏幕(背景与ABPersonView相关联)。 我用displayedProperties搞砸了一下:

ctrl.displayedProperties = [NSArray arraywithObjects:
     [NSNumber numberWithInt:kABPersonLastNameProperty],nil];

当我指定我只想查看姓氏时 - 会显示一条消息 在同一个视图上 - NO_VALUE_UNKNOWN

我检查了调试,我的ABRecordRef不为null,并包含所有相关的字符串。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

解决了:) 我从segue调用了一个包含上面显示的代码的方法。 在我的方法之后才调用super的viewDidLoad方法。

当我重新安排调用顺序时,它就像一个魅力:)