2012-04-23 1 views
1

私はかなりObjective-Cを使い慣れていますので、あまりにも明白だと思うものがあれば、あらかじめご容赦ください:)ABPersonViewControllerを使用する正しい方法は?

私はアドレス帳を表示してユーザーを選択する簡単なプログラムを書いています(iOSコンタクトリストを模倣する)。

@interface BasicViewController : 
UIViewController<ABPersonViewControllerDelegate> 

コントローラは、前のビューからABRecordRefをrecieves:

は、私は基本的なコントローラを持っています。私が使用して私の方法の一つでは、 :

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ではなく、すべての関連する文字列を含みます。

アイデア?

答えて

2

解決済み:) 上に表示されたコードを含むメソッドを、segueから呼び出しました。 スーパーメソッドのviewDidLoadメソッドは、私のメソッドが終了するまで呼び出されませんでした。

私は呼び出し順序を並べ替えると、魅力的に機能しました:)

関連する問題