@@ -9,41 +9,60 @@ import UIKit
9
9
final class ListViewController : UIViewController {
10
10
11
11
private let listView : ListView = {
12
-
13
12
let listView = ListView ( )
14
13
return listView
15
14
} ( )
15
+
16
+ private lazy var searchController : UISearchController = {
17
+ let searchController = UISearchController ( )
18
+ searchController. searchBar. delegate = self
19
+ searchController. searchBar. placeholder = " Type a GitHub user name "
20
+
21
+ return searchController
22
+ } ( )
16
23
17
24
private let service = Service ( )
18
25
19
26
init ( ) {
20
27
super. init ( nibName: nil , bundle: nil )
21
-
22
28
}
23
29
24
30
required init ? ( coder: NSCoder ) {
25
31
fatalError ( " init(coder:) has not been implemented " )
26
32
}
27
33
28
34
override func viewDidLoad( ) {
29
-
30
- self . navigationController? . navigationBar. prefersLargeTitles = true
31
- self . navigationItem. title = " GitHub App 🐙 "
35
+ setupNavigationBar ( )
32
36
}
33
37
34
38
override func viewDidAppear( _ animated: Bool ) {
35
-
36
39
service. fetchList { repositories in
37
-
38
40
DispatchQueue . main. async {
39
-
40
41
self . listView. updateView ( with: repositories)
41
42
}
42
43
}
43
-
44
44
}
45
45
46
46
override func loadView( ) {
47
47
self . view = listView
48
48
}
49
+
50
+ private func setupNavigationBar( ) {
51
+ let navBarAppearance = UINavigationBarAppearance ( )
52
+ navBarAppearance. configureWithOpaqueBackground ( )
53
+ navBarAppearance. backgroundColor = UIColor ( red: 245 , green: 245 , blue: 245 )
54
+
55
+ navigationController? . navigationBar. scrollEdgeAppearance = navBarAppearance
56
+ navigationController? . navigationBar. prefersLargeTitles = true
57
+ navigationItem. title = " Repositories "
58
+ navigationItem. searchController = searchController
59
+ }
60
+ }
61
+
62
+ extension ListViewController : UISearchBarDelegate {
63
+ func searchBarSearchButtonClicked( _ searchBar: UISearchBar ) {
64
+ let text = searchBar. text
65
+ searchController. isActive = false
66
+ searchBar. text = text
67
+ }
49
68
}
0 commit comments