1

我对 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 不为空,并且包含所有相关字符串。

有任何想法吗?

4

1 回答 1

2

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

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

于 2012-04-25T14:25:56.627 回答