2011-03-07 9 views
0

내 자신의 대답은 아래를 참조하십시오. 시간과 시간 후에 알아 냈습니다. 바라기를 나는 누군가를 약간 저장한다.UITabBarController의 ABPeoplePickerNavigationController 및 UITableViewController

현재 UI에 ABPeoplePickerNavigationController를 표시하는 버튼이 있습니다. 정상적으로 작동합니다. 사용자가 버튼을 눌렀을 때 하나의 탭에 ABPeoplePickerNavigationController가있는 UITabBarController를 표시 한 다음 즐겨 찾기와 recents가있는 다른 두 개의 탭 (UITableViewController가 될 것으로 짐작합니다)을 표시하도록 즐겨 찾기 및 최근 항목을 구현하도록이 기능을 확장하려고합니다. 기본적으로 탭 표시 줄 컨트롤러는 주소록, 즐겨 찾기 및 최근 탭의 전화 앱에 내장 된 모달 버전처럼 작동합니다. (전화 번호가 아님)

나는 (TabBarControllers를 처음 접했을 때)이 작업을 수행하는 방법에 대한 솔루션을 제공하고 있으며, 약간의 성공을 거두어 프로그래밍 방식으로이 작업을 시도했지만 Interface Builder에서는 전혀 성공하지 못했다.

이미 내가 좋아하는 연락처와 즐겨 찾기를 찾지 못하는 뭔가가있는 라이브러리가 있습니까? 여기

내가 두 가지 방법으로 시도했다에 고장이며, 근무 방법 : 프로그래밍 방식

: 나는 기본적으로 내가 모달 혼자 제시 가고 있었다처럼 ABPeoplePickerNavigationController을 만들 수 있지만 대신에 추가 setViewControllers 메서드를 사용하는 UITabBarController 인스턴스입니다. 이것을 표시 할 때 탭에 "그룹"이라고 표시되어 아이콘을 연락처의 시스템 아이콘으로 변경하거나 탭 모음 단추를 눌러 그룹으로 되돌아 가지 않는 동작을 변경하는 방법을 알 수 없습니다 (내장 된 전화 앱은 탭 바 버튼을 누를 때 그 수준까지 백업되지 않습니다). 위에서 언급 한 것처럼 기본적으로 연락처, 즐겨 찾기 및 최근 항목에 대해 내장 된 전화 앱과 유사하게 동작해야합니다.

IB : 나는 모럴 톤으로 제시하려고 할 때 엄청난 양의 것을 시도하고 항상 흰색 화면 만 얻는다.

답변

2

ABOPoplePickerNavigationController가있는 탭과 어제 밤 테이블보기가있는 탭이 두 개 있습니다. 나는 이것이 누군가를 돕기를 바랍니다. 프로토콜을 현재 뷰 컨트롤러에 선택기와 두 개의 tableview에 추가 한 다음 각각에 대한 대리자 함수를 코드에 추가해야합니다. 어떤 프로토콜을 채택할지 또는 쓸 함수가 무엇인지 모르는 경우 각각에 대한 Apple Dev 문서를 확인하십시오.

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
picker.peoplePickerDelegate = self; 
UITabBarItem *peoplePickerTabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:0]; 
picker.tabBarItem = peoplePickerTabBarItem; 
UITableViewController *tvc = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
tvc.tableView.delegate = self; 
tvc.tableView.dataSource = self; 
UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:tvc]; 
UIBarButtonItem *uibbiCancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancelTable)]; 
tvc.navigationItem.rightBarButtonItem = uibbiCancel; 
tvc.title = @"Recents"; 
UITabBarItem *nvcTabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemRecents tag:2]; 
nvc.tabBarItem = nvcTabBarItem; 
tbc = [[UITabBarController alloc] init]; 
NSArray *sections = [[NSArray alloc] initWithObjects:picker, nvc, nil]; 
[tbc setViewControllers:sections]; 
[self presentModalViewController:tbc animated:YES]; 
[nvcTabBarItem release]; 
[uibbiCancel release]; 
[tvc release]; 
[peoplePickerTabBarItem release]; 
[picker release]; 
[nvc release]; 
[sections release]; 
[tbc release]; 
관련 문제