@@ -9,11 +9,14 @@ import UIKit
99
1010class HomeViewController : UIViewController {
1111
12+ // MARK: Properties
1213 let homeVM = HomeViewModel ( )
1314
15+ // MARK: Outlets
1416 @IBOutlet var tableView : UITableView !
1517 @IBOutlet weak var loadingView : UIActivityIndicatorView !
1618
19+ // MARK: Overrides
1720 override func viewDidLoad( ) {
1821 super. viewDidLoad ( )
1922 loadingView. startAnimating ( )
@@ -24,9 +27,17 @@ class HomeViewController: UIViewController {
2427 tableView. register ( UINib ( nibName: " AnimalTableViewCell " , bundle: nil ) , forCellReuseIdentifier: " Animal " )
2528
2629 setNavigationItems ( )
30+
31+ let refreshControl = UIRefreshControl ( )
32+ refreshControl. addTarget ( self , action: #selector( reloadAnimals) , for: . valueChanged)
33+ tableView. refreshControl = refreshControl
34+ }
35+
36+ override func viewWillAppear( _ animated: Bool ) {
2737 populateTableView ( )
2838 }
2939
40+ // MARK: Methods
3041 private func setNavigationItems( ) {
3142 title = " Home "
3243
@@ -49,8 +60,15 @@ class HomeViewController: UIViewController {
4960 }
5061 }
5162 }
63+
64+ @objc
65+ private func reloadAnimals( refreshControl: UIRefreshControl ) {
66+ populateTableView ( )
67+ refreshControl. endRefreshing ( )
68+ }
5269}
5370
71+ // MARK: TableView Data Source
5472extension HomeViewController : UITableViewDataSource {
5573 func tableView( _ tableView: UITableView , numberOfRowsInSection section: Int ) -> Int {
5674 return homeVM. numberOfRows ( )
@@ -69,6 +87,7 @@ extension HomeViewController: UITableViewDataSource {
6987
7088}
7189
90+ // MARK: TableView Delegate
7291extension HomeViewController : UITableViewDelegate {
7392
7493 func tableView( _ tableView: UITableView , didSelectRowAt indexPath: IndexPath ) {
0 commit comments