Şu an UISearchController ile projelerimden birinde yer alan searchDisplayController'ı değiştirmeye çalışıyorum ve bu sorunla karşılaşıyorum.UISearchController, iptal düğmesine bastıktan sonra VC'yi kapatır
Aramada hiçbir sonuç yoksa (UITableView boş) tüm ViewController reddedilir. Arama sonuçları boş olmadığında bu olmaz. Bir UITableViewController kullanmıyorum açık yapmak için değildi. Bunun yerine içinde bir UITableView ile düzenli bir VC var.
İşte benim kod bazı geçerli:
var resultSearchController = UISearchController()
override func viewDidLoad() {
super.viewDidLoad()
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.delegate = self
controller.searchBar.delegate = self
self.studentTable.tableHeaderView = controller.searchBar
return controller
})()
....
}
Şimdi, iptal düğmesi her zaman VC görevden denkleme bu işlevi eklerseniz.
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
resultSearchController.active = false
}
Neden tam olarak
searchController.active = false
VC görevden ayarı geliyor? Aynı UITableView'u VC olarak kullandığından mı? Ben eski searchDisplayController sadece kullanılan bir UITableView görüntüleyecektir inanıyorum. Bu durumda dismissVC'yi geçersiz kılacak bir yol var mı?
ne olur :-) yardımcı olur Umut
ile: Bunu çözün Way değiştirilmesi gereğidir 'false' ve iptal düğmesine bastın mı? – shimİçermediği zaman, soru durumları olarak arama sonucu olmadığında VC'yi yalnızca reddeder. Eğer varsa, iptal düğmesine basıldığında her zaman yapar. – boidkan
Arama sonucu olmadığında reddeder veya arama sonuçları olmadığında reddeder ve iptal ettiniz mi? – shim