2012-04-18 3 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; 
} 

레코드는 .i 파일의 ABRecordRef 레코드로 선언되었습니다. ABPersonViewControllerDelegate 메서드가 호출되지 않습니다? 무슨 일있어? 모든 종류의 도움을 주시면 감사하겠습니다. 감사합니다

+0

나는 해결책을 찾았습니까? – wod

답변

0

당신의 프로젝트의 .h에서 이러한 프로토콜을 구현 했습니까?

< ABPeoplePickerNavigationControllerDelegate, 
                   ABPersonViewControllerDelegate, 
                   ABNewPersonViewControllerDelegate, 
                   ABUnknownPersonViewControllerDelegate> 
+0

모두 아닙니다. 내 .h 파일에만 ABPersonViewControllerDelegate 있습니다. 왜 위의 모든 것이 필요합니까? 또한 구현할 대리자 메서드를 알려주십시오. 감사. – iOSAppDev

+0

당신은 모든 것을 필요로하지 않습니다. 나는 여러분의 전체 코드를 볼 수 없기 때문에 모든 것을 언급했습니다 ... 그리고 경고를 얻지 못하면 구현할 필요가있는 모든 방법을 가지고 있습니다. 결정할 다른 방법은 다음과 같습니다. ABPersonViewControllerDelegate의 정의를 찾아 "필수"제목 아래에서 메소드를 찾으십시오. –

+0

ABPersonViewControllerDelegate는 구현 한 단 하나의 메소드 (내 코드에 표시됨) 만 있습니다. 여전히 작동하지 않습니다. 어떤 생각? – iOSAppDev

관련 문제