2009-07-12 8 views
6

안녕하세요. ABPeoplePickerNavigationController가 있습니다. 생성시 해당 navigationBar가 숨겨져 있습니다. 사용자가 자신이 검색에서의를 반환으로 검색 상자 은, 사람을 검색 탭 때IPHONE : ABPeoplePickerNavigationController 숨겨진 탐색 모음

peoplePickerController.navigationBar.hidden = YES; 

이는 완벽하게, 유일한 문제는 내비게이션 바는 다시 표시된다 작동 ,. 어떻게 알림을 받고 탐색 모음을 다시 숨길 수 있습니까?

나는 또한 앱 버그라고 생각합니다. 보통의 경우 검색을 도청하면 탐색 표시 줄이 숨겨져 더 많은 공간을 확보하고 나중에 표시되지만, 사실을 고려하지 않습니다. 바는 첫 번째 장소에 숨겨 졌을 수 있습니다.

트릭을 환영합니다.

답변

22

가장 간단하고 안전한 방법은 키보드가 숨겨 지거나 표시되는 때를 추적하는 것입니다.

- (void)keyboardWillHide:(NSNotification *)notification 
{ 
    peoplePickerController.navigationBar.hidden = YES; 
} 

- (void)hideNavbarAndKeepHidden 
{   
    peoplePickerController.navigationBar.hidden = YES; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
} 

- (void)dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [super dealloc]; 
} 
+2

선생님, 당신은 단지 100 평판 포인트를 얻었습니다. 덕분에 많이 :). – daniel

+1

대단히 환영합니다. 그리고 다른 주석 기자가 말했듯이, 그것은 실제로 버그이며 Apple에 제출해야합니다 (최상의 결과를위한 간단한 테스트 프로젝트 포함) – rpetrich

3

버그라고 생각되면 http://bugreporter.apple.com에 제출해야합니다.

나에게도 버그가있는 것처럼 들리지만 문서를 다시 확인해 보겠습니다. 아무 것도 언급하지 않으면 버그를보고하는 것이 좋습니다.

편집 : 반면에, 여기에 탐색 모음을 숨겨 놓는 것이 좋지 않은 생각입니다. 그것을 숨기고 싶은 특별한 이유가 있습니까?

+1

다른 탐색 모음이 이미이 작업을 수행하고 있습니다. 컨트롤러와 함께 제공되는 어댑터를 수정할 수 없기 때문에 이것이 ABPeoplePickerNavigationController 사용법을 수정할 수 없기 때문에 정말 귀찮습니다. – daniel