2016-08-29 3 views
0

검색 버튼이있는 UINavigationBar가 있습니다. 검색 버튼은 UISearchController를 트리거합니다.UINavigationBar는 UISearchController를 닫을 때 UITableView를 처리합니다.

self.navigationItem.titleView = self.searchController.searchBar 
self.searchController.searchBar.becomeFirstResponder() 

사용자가 검색 결과를 선택하면 새 ViewController가 푸시됩니다. 그런 다음 사용자가 다시 탭하면 이전 활성 ViewController와 함께 여전히 활성 검색 결과가 표시됩니다.

그런 다음 취소를 눌러 UISearchController를 닫으면 UINavigationBar가 이제보기의 콘텐츠를 포함합니다. 나는 당신이 그 라인을 주석 시도, 당신은 당신이 문제의 원인을 알고 있다고 생각한다면 다음의 ViewController가

Process from left to right

답변

0

을 제시 때 viewDidLoad에서 truefalse-self.definesPresentationContext 내 설정 될 수있다 생각하십니까? 아직도 그렇습니까?

UIViewController의 automaticallyAdjustsScrollViewInsets 속성과 관련이있는 것 같습니다.

UIViewController에서 false으로 설정해보세요.

편집 :

당신이있는 UIViewController의 edgesForExtendedLayout 속성을 변경하려고 했습니까?

self.edgesForExtendedLayout = UIRectEdgeNone; 
+0

self.definesPresentationContext를 주석 처리하면 searchController의 표현이 깨지기 때문에 복제 할 수 없습니다. 'automaticallyAdjustsScrollViewInsets'을 false로 설정해도 결과는 바뀌지 않습니다.하지만 UINavigationBar가 처음부터 끝까지 존재하더라도 searchController가 활성화되어있는 동안 UIViewController가 인세 트를 계산하는 것으로 보입니다. – Ash

+0

@Ash 위의 편집을 참조하십시오. – siburb