2010-03-03 2 views
0

아주 기본적인 '연락처 추가'버튼을 구현하는 중반에 있습니다.iphone ABNewPersonViewController가 위임에 응답하지 않는 것 같습니다

- (IBAction)showAddContact { 
NSLog(@"Hit showAddContact"); 

ABNewPersonViewController *newPersonViewController = [[ABNewPersonViewController alloc] init]; 

addContactNavController = [[UINavigationController alloc] initWithRootViewController:newPersonViewController]; 
[self presentModalViewController:addContactNavController animated:YES]; 
} 

을 한 후 나는 또한의 대리인 resonse 설정 한 : 나는 (작품을, 링크있는 UIButton 통해) 코드를 사용하여 '추가보기'를 호출하고 내 헤더에

- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person { 
    NSLog(@"Hit newPersonViewController"); 
//ABContact *contact = [ABContact contactWithRecord:person]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 

를 I 설정 :

#import <UIKit/UIKit.h> 
#import <AddressBook/AddressBook.h> 
#import <AddressBookUI/AddressBookUI.h> 

@interface test2ViewController : UIViewController <ABNewPersonViewControllerDelegate> { 
UINavigationController* addContactNavController; 
} 

- (IBAction)showAddContact; 

@end 

프레임 워크 Addressbook 및 AddressBookUI를 추가했습니다.

예상대로 추가 대화 상자가 나타나고 연락처를 편집 할 수 있지만보기에서 모달보기 컨트롤러를 제거 할 수 없습니다.

나는 심지어 여기에 사용할 수있는 간단한 테스트 프로젝트에서 문제를 복제 한 : 내가 놓친 게 무엇 link text

? 나는 그것이 매우 간단 뭔가 내기.

당신은 그것을 제시 후 ABNewPersonViewControllerrelease한다 : 문제의

+0

문법적인 부분이지만, 당신이 말하고자하는 것은 당신의 ABNewPersonViewController 인스턴스가 대리자를 호출하지 않는다는 것입니다. –

+0

내가 게시 한 마지막 코드가 nav 컨트롤러와 시도의 절반 반 조합 인 것처럼 보입니다. 모달보기 ... 어제 긴 하루 였음에 틀림 없습니다. 전체 솔루션을 보려면 아래 내 의견을 참조하십시오. – oberbaum

답변

3

커플 @norskben 감사합니다.

당신은 presentModalViewController:와 모달 대화 상자로 ABNewPersonViewController을 제시하지만이 popViewControllerAnimated:UINavigationController에 밀어 것처럼 당신은 화면에서 제거합니다. 대신 , 또는 으로 표시하고을 내고으로 표시해야합니다. (이것이 의미하는 바를 모르는 경우에는 View Controller 설명서를 조금 읽으십시오)

ABNewPersonViewControllerDelegate 프로토콜을 구현하더라도 delegate 속성을 ABNewPersonViewController으로 설정하지 마십시오.

+1

도움을 주셔서 감사합니다. 시도했습니다 .delegate = self, 그리고 그것은 로딩 아니었지만, 사용에 \t newPersonViewController.newPersonViewDelegate = 자기; 예상대로 작동했습니다! 건배. 앞으로는 같은 질문을 가진 모든 브라우저에 예제가 있습니다. http://norskben.posterous.com/iphoneos-addressbook-create-new-client-and-ge – oberbaum

관련 문제