で検索しない:私は内部searchBarButtonClicked機能で且つプリント(searchUrl)にブレークポイントをADDEUISearchController私は、次のコードと私のテーブルビューのヘッダーとしてUISearchControllerを設定しているのUITableViewController
let mySearchController = UISearchController(searchResultsController: nil)
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
let keywords = searchBar.text
let finalKeywords = keywords?.replacingOccurrences(of: " ", with: "+")
searchUrl = "https://api.spotify.com/v1/search?q=\(finalKeywords!)&type=track&limit=20"
print(searchUrl)
callAlamo(url: searchUrl)
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(postCell.self, forCellReuseIdentifier: cellId)
tableView.separatorColor = .red
mySearchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
mySearchController.delegate = self as? UISearchControllerDelegate
tableView.tableHeaderView = mySearchController.searchBar
}
しかし、ブレークポイントには決して行きませんでした。検索バーをクリックしたときにsearchBarSearchButtonClicked関数が実行されないのはなぜですか?
'UISearchControllerDelegateとして?このダウンキャストは恐らく 'nil'を返すでしょう。クラスに実装された 'UISearchControllerDelegate'を追加した場合、ダウンキャストは必要ありません。 – Paulw11
'mySearchController.delegate = self asを削除しましたか? UISearchControllerDelegate'でもまだ動作しません –
デリゲートが必要です。デリゲートとしてクラスを設定する必要がありますが、デリゲートを設定する条件付きダウンキャストがなぜあるのか不思議です。デリゲート実装が正しく設定されていないと思うので、デリゲートメソッドが呼び出されていないのです。 – Paulw11