우리는 명시된 특정 UIViewController
의 UISearchController
에UISearchController.hidesNavigationBarDuringPresentation는 우리의 프로젝트에
hidesNavigationBarDuringPresentation = false
. searchController에는 범위 제목 배열이 있습니다. 이것은 지금까지 iOS 10까지는 잘 작동하지만, iOS 11 베타에서는 hidesNavigationBarDuringPresentation의 잘못된 설정이 무시되어 우리의 디스플레이가 엉망이됩니다. 프로젝트의 다른 요소로 인한 것이 아닌지 확인하기 위해 단일 UITableViewController
으로 구성된 베어 본 테스트 프로젝트를 만들었습니다. UISearchController
을 다른 간단한 UITableViewController
으로 초기화했습니다. scopeButtonTitles
을 할당 마지막 줄이 존재하지 않을 때
self.title = "Search Bar Scope Test"
let searchViewController = SearchViewController(style: .plain)
searchController = UISearchController(searchResultsController: searchViewController)
searchController!.searchBar.sizeToFit()
tableView.tableHeaderView = searchController!.searchBar
searchController?.hidesNavigationBarDuringPresentation = false
searchController?.searchBar.scopeButtonTitles = ["scope 1", "scope 2", "scope 3", "scope 4", "scope 5"]
가 탐색 모음 숨겨진하지 않았고 검색 창은 원래 위치에 남아 : 다음 코드는 기본보기 컨트롤러의 viewDidLoad()
방법입니다. 그러나 해당 줄이 있으면 NavigationBar
이 숨겨지고 searchBar
과 범위 단추가 모두 iPhone 및 iPad에서 세로 모드로 위로 이동하지만 범위 단추가 많고 맞지 않을지라도 가로 모드로 동일하게 유지됩니다 한 줄에).
다른 사람이이 문제가 발생 했습니까? 이것은 iOS 11에서 버그 또는 예상되는 동작 (물론 우리가 원하는 동작이 아님)이며 해결 방법이 있습니까?
감사합니다.
스코프 버튼에 문제가 없지만 전체 검색 막대가 테이블보기에서 튀어 나와 화면 상단에 연결됩니다. Xcode 9 GM 사용. –
@ChrisPaveglio 마침내 문제의 원인을 발견했습니다. 아래 내 대답을 참조하십시오. – CodePlumber
고마워요. 그렇지만 제 문제는 아닙니다. 알아내는 데 더 많은 시간이 필요해. 나는 더 독특하다고 생각해. 나는 2 개의 테이블 뷰가 나란히있는 iPad 레이아웃을 가지고 있고 1 개는 검색 창을 가지고 있으며 결코 테이블 뷰를 놓아서는 안됩니다. 나는 내가 더 멀리 가기 전에 몇 가지 것을 리팩터링 할 필요가 있다고 생각한다. –