swift でapiを使ったインクリメンタルサーチがわからないです!!
どのようにすればよいでしょうか?
displaysearchcontrollerを使ってやっていますがインクリメンタルサーチにならないです。
早急にお願いします
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
UISearchController
を使用して実装されているという前提で回答します。
UISearchController
を表示して、ユーザーがテキストフィールドに文字を入力した場合updateSearchResultsForSearchController
というメソッドが呼ばれます、そちらで入力した文字列を取得できるのでその文字列をAPIに対して渡せば良いと思います。
UISearchController
の使い方参考
【Swift】Search Controllerの使い方。検索されたら検索結果用のビューコントローラーを呼び出す。
swift
1import UIKit 2 3class ViewController: UIViewController, UISearchResultsUpdating { 4 5 var searchController = UISearchController(searchResultsController: nil) 6 @IBOutlet weak var myTableView: UITableView! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 } 11 12 // SearchBarに文字列を入力された時に呼ばれる 13 func updateSearchResultsForSearchController(searchController: UISearchController) { 14 15 // ここでAPIに対してリクエストを送信する 16 17 let url = NSURL(string: "指定のURL")! 18 let request = NSMutableURLRequest(URL: url) 19 let config = NSURLSessionConfiguration.defaultSessionConfiguration() 20 let session = NSURLSession(configuration: config, delegate: nil, delegateQueue: NSOperationQueue.mainQueue()) 21 22 let task = session.dataTaskWithRequest(request) { data, response, error in 23 24 // メインスレッドで実行される 25 if let response = response, data = data { 26 27 // 取得したデータをパースしてテーブルに表示 28 29 self.myTableView.reloadData() 30 31 } else { 32 print(error) 33 } 34 } 35 36 task.resume() 37 38 print(searchController.searchBar.text) 39 } 40 41 @IBAction func searchButton(sender: UIButton) { 42 43 // SearchController Setting 44 searchController.searchResultsUpdater = self 45 searchController.hidesNavigationBarDuringPresentation = false 46 searchController.dimsBackgroundDuringPresentation = true 47 searchController.searchBar.searchBarStyle = UISearchBarStyle.Prominent 48 searchController.searchBar.sizeToFit() 49 presentViewController(searchController, animated: true, completion: nil) 50 } 51}
投稿2016/07/16 03:56
編集2016/07/16 08:25総合スコア8490
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/16 08:09
2016/07/16 08:26