2015-01-02 4 views
5

검색 막대 컨트롤러를 거기에서 끌어낼 때 나타나는 표준 검색 막대가 아닌 탐색 막대의 단추에서 UISearchDisplayController를 활성화 할 수 있는지 궁금합니다. Xcode의 라이브러리. 달력 응용 프로그램에서이 기능과 마찬가지로 :버튼에서 UISearchDisplayController 기본 검색 필드가 아닌

[self.searchDisplayController setActive:YES animated:YES]; 

을하지만 당신은 여전히 ​​검색 창을 필요로하고 검색 창은 어디에서 애니메이션을

UISearchDisplayController in the Calendar app 당신과 같이 동작을 발사 버튼을 얻을 수 있습니다. 이상적으로는 GIF와 같이 맨 위부터 들어오고 싶습니다.

도움을 주시면 감사하겠습니다. 데이빗.

+0

검색 창을 만들면됩니다. 로드시 프레임이 오프 스크린되도록 설정하십시오. 그것이 콘센트 속성을 가지고 있는지 확인하십시오. 버튼을 클릭하고 첫 번째 응답자를 만들 때 애니메이션을 적용하십시오. – soulshined

답변

7

오래된 질문,하지만 난 대답 그래서 난이 재 방문 가치가 생각이 ... 내가 UISearchController보다는 UISearchDisplayController를 사용 결국

.

하여 검색을 활성화 할,하지만 검색 창을 원하지 않는 경우, 당신은 모든 당신이 구현해야 더 검색 막대가 없기 때문에 그 다음

self.searchController.active = YES; 

등을 사용하여 검색을 활성화 할 수 presentSearchController : UISearchControllerDelegate 메소드의 메소드.

- (void)presentSearchController:(UISearchController *)searchController { 
    [self.window.rootViewController presentViewController:self.searchController animated:YES completion:nil]; 
} 

동일한 애니메이션이 아니지만 일반적으로 볼 수있는 컨트롤러 애니메이션 API를 사용하면 비슷한 효과를 얻을 수 있습니다.

+0

도움이되는 답변 주셔서 감사합니다. 키보드가 자동으로 표시되지 않는 문제가 있습니까? 여러 곳에서'self.searchController.searchBar becomeFirstResponder'를 호출하려고했으나 애니메이션이 끝난 후에 만 ​​작동합니다. 그래서 searchBar가 먼저 미끄러 져서 키보드가 미끄러 져 들어갑니다. 그러나 나는 한 번에 움직이기를 원합니다. 어떤 이유로 든, searchBar.canBecomeFirstResponder는 제시 애니메이션이 완료되기 전에 항상 '아니오'입니다. 어떤 생각? –

+0

캘린더 응용 프로그램에서와 똑같이 작동하게하려면 동일한보기 컨트롤러 (예 :'self.window.rootViewController' 대신'self')에서 검색 컨트롤러를 제공하고'searchController.hidesNavigationBarDuringPresentation = false '및'searchController.searchBar.searchBarStyle = .prominent'를 참조하십시오. – maxkonovalov