UISearchBar와 함께 UITableViewController를 사용하고 있습니다. UITableViewController는 UINavigationController에 내장되어 있습니다. 테이블보기가 표시되면 검색 막대가 예상대로 맨 위에 표시됩니다 (탐색 막대 아래에 있음). 탐색 바에 제목과 프롬프트가 표시됩니다.IOS : 프롬프트로 UINavigationBar를 부분적으로 덮는 IOS : UISearchBar
검색 창을 클릭하면 위로 이동하고 내비게이션 막대에서 제목을 숨 깁니다. 프롬프트가 계속 표시됩니다. 프롬프트를 사용하지 않을 때 검색 막대는 클릭 한 다음 예상대로 탐색 막대 아래에 있습니다.
나는 내 문제를 설명하는 매우 간단한 프로젝트를 만들었습니다. 은 UINavigationController에 포함 된 경우에만 비어있는 UITableViewController이
import UIKit
class searchTVC: UITableViewController, UISearchControllerDelegate, UISearchResultsUpdating {
fileprivate let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
title = "Title"
navigationItem.prompt = "prompt"
tableView.backgroundColor = UIColor.gray
// Add search bar
searchController.delegate = self
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
// remove separators for empty table
tableView.tableFooterView = UIView()
}
func updateSearchResults(for searchController: UISearchController) {
// ignore
}
}
스토리 보드에서 :이 프로젝트는있는 UITableViewController에 대한 다음과 같은 파일이 있습니다. 결과는 다음과 같습니다.

예상대로 동작이 프롬프트를 설정하는 줄을 주석으로 경우
.
나는 최근에 내가 스위프트 3 사용하여이 동작을 본 것을 기억하지 수 스위프트 4. 내 코드를 업데이트,하지만 난 그게 스위프트에 도입 된 것을 완전히 확신하지 않는다 4.
나는 뭔가를 놓치고 있습니까 코드 또는 버그입니까? viewDidLoad
에서