質問するログイン新規登録

回答編集履歴

1

修正

2016/07/16 08:25

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -2,13 +2,16 @@
2
2
 
3
3
  `UISearchController`を表示して、ユーザーがテキストフィールドに文字を入力した場合`updateSearchResultsForSearchController`というメソッドが呼ばれます、そちらで入力した文字列を取得できるのでその文字列をAPIに対して渡せば良いと思います。
4
4
 
5
+ `UISearchController`の使い方参考
6
+ [【Swift】Search Controllerの使い方。検索されたら検索結果用のビューコントローラーを呼び出す。](http://hajihaji-lemon.com/smartphone/swift/uisearchcontroller/)
7
+
5
8
  ```swift
6
9
  import UIKit
7
10
 
8
-
9
11
  class ViewController: UIViewController, UISearchResultsUpdating {
10
12
 
11
13
  var searchController = UISearchController(searchResultsController: nil)
14
+ @IBOutlet weak var myTableView: UITableView!
12
15
 
13
16
  override func viewDidLoad() {
14
17
  super.viewDidLoad()
@@ -18,7 +21,28 @@
18
21
  func updateSearchResultsForSearchController(searchController: UISearchController) {
19
22
 
20
23
  // ここでAPIに対してリクエストを送信する
24
+
25
+ let url = NSURL(string: "指定のURL")!
26
+ let request = NSMutableURLRequest(URL: url)
27
+ let config = NSURLSessionConfiguration.defaultSessionConfiguration()
28
+ let session = NSURLSession(configuration: config, delegate: nil, delegateQueue: NSOperationQueue.mainQueue())
29
+
30
+ let task = session.dataTaskWithRequest(request) { data, response, error in
31
+
32
+ // メインスレッドで実行される
33
+ if let response = response, data = data {
34
+
21
- // 返却されたデータをパースしてテーブルなどに表示する
35
+ // 取得したデータをパースしてテーブルに表示
36
+
37
+ self.myTableView.reloadData()
38
+
39
+ } else {
40
+ print(error)
41
+ }
42
+ }
43
+
44
+ task.resume()
45
+
22
46
  print(searchController.searchBar.text)
23
47
  }
24
48