1

私はObjective-Cにかなり慣れていないので、あなたが明白だと思う何かが欠けている場合は、事前に申し訳ありません:)

アドレス帳を表示し、ユーザーを選択する (iOS の連絡先リストを模倣した) 簡単なプログラムを作成しました。

私は基本的なコントローラーを持っています:

@interface BasicViewController : 
UIViewController<ABPersonViewControllerDelegate>

コントローラーは、前のビューから ABRecordRef を受け取ります。私の方法の1つでは、次を使用します。

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

何か案は?

4

1 に答える 1

2

解決しました:)セグエから上記のコードを含むメソッドを呼び出しました。スーパーのviewDidLoadメソッドは、私のメソッドが呼び出されるまで呼び出されませんでした。

呼び出し順序を並べ替えたとき、それは魅力のように機能しました:)

于 2012-04-25T14:25:56.627 に答える