2012-04-18 9 views
2

どのようにABPersonViewControllerを閉じることができますか?ここに私のコードですiPhoneのABPersonViewControllerを却下できません

#pragma mark - Edit Record Method 

-(void)btnEditContactTapped:(id)sender { 

    // Fetch the address book 
    ABAddressBookRef addressBook = ABAddressBookCreate(); 

    ABRecordID recID = ABRecordGetRecordID(record); 

    ABRecordRef record1 = ABAddressBookGetPersonWithRecordID(addressBook,recID); 

    ABPersonViewController *personViewController = [[ABPersonViewController alloc]init]; 
    // set delegate 
    personViewController.personViewDelegate = self; 

    // Allow editing info 
    personViewController.allowsEditing = YES; 

    // Display contact info of selected person 
    personViewController.displayedPerson = record1; 

    // Person view controllers must be used with a navigation controller in order to function properly. 
    UINavigationController *nc = [[UINavigationController alloc] 
            initWithRootViewController:personViewController]; 
    [self presentModalViewController:nc animated:YES]; 
    [personViewController release]; 

} 

#pragma mark - ABPersonViewControllerDelegate Method 

- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue { 

    [self dismissModalViewControllerAnimated:YES]; 
    return NO; 
} 

私のivarのレコードは.hファイルのABRecordRefレコードとして宣言されています。 ABPersonViewControllerDelegateメソッドは呼び出されませんか?何がうまくいかないの?どんな種類の助けにも感謝します。ありがとう

+0

解決策を見つけましたか? – wod

答えて

0

あなたのプロジェクトの.hでthesseプロトコルを実装しましたか?

< ABPeoplePickerNavigationControllerDelegate, 
                   ABPersonViewControllerDelegate, 
                   ABNewPersonViewControllerDelegate, 
                   ABUnknownPersonViewControllerDelegate> 
+0

すべてではありません。私は自分の.hファイルにABPersonViewControllerDelegateしか持っていません。上記のすべてが必要なのはなぜですか?また、どのデリゲートメソッドを実装する必要があるかを教えてください。ありがとう。 – iOSAppDev

+0

あなたはすべてを必要としない私はあなたの完全なコードを見ることができないので、私はそれらをすべて言及しました...そして、あなたが実装する必要があるすべての方法を持っているなら、警告を得ていなければ... ABPersonViewControllerDelegateの定義に行き、 "required"見出しの下でメソッドを探します。 –

+0

ABPersonViewControllerDelegateには、実装したメソッドが1つしかありません(コード内に表示されています)。まだそれは動作しません。何か案が? – iOSAppDev

関連する問題