Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.23 KB | None | 0 0
  1. //
  2. //  NewsViewController.swift
  3. //  KIPU
  4. //
  5. //  Created by Elvis on 4/21/18.
  6. //  Copyright © 2018 Elvis. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10.  
  11. class NewsViewController: BaseViewController {
  12.  
  13.     @IBOutlet weak var tableView: UITableView!
  14.    
  15.     var viewModel = NewsViewControllerVM()
  16.    
  17.     let cellIdentifier = "cellIdentifier"
  18.    
  19.     override func viewDidLoad() {
  20.         super.viewDidLoad()
  21.  
  22.         // Do any additional setup after loading the view.
  23.         self.title = "Новости"
  24.        
  25.         self.tableView.register(NewsCell.className, forCellReuseIdentifier: self.cellIdentifier)
  26.         self.viewModel.requestNews()
  27.         self.tableView.reloadData()
  28.         self.tableView.rowHeight = UITableViewAutomaticDimension
  29.         self.tableView.estimatedRowHeight = 200
  30.        
  31.         self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(createNews))
  32.     }
  33.    
  34.     @objc func createNews() {
  35.         let vc = CreateNewsViewController()
  36.         vc.hidesBottomBarWhenPushed = true
  37.         self.navigationController?.pushViewController(vc, animated: true)
  38.     }
  39.  
  40. }
  41.  
  42. extension NewsViewController: UITableViewDataSource {
  43.     func numberOfSections(in tableView: UITableView) -> Int {
  44.         return 1
  45.     }
  46.    
  47.     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  48.         return self.viewModel.cellsData.count
  49.     }
  50.    
  51.     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  52.         let cell = tableView.dequeueReusableCell(withIdentifier: self.cellIdentifier, for: indexPath) as! NewsCell
  53.         let viewModel = self.viewModel.cellsData[indexPath.row]
  54.         cell.setup(viewModel)
  55.         return cell
  56.     }
  57. }
  58.  
  59. extension NewsViewController: UITableViewDelegate {
  60.     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  61.         tableView.deselectRow(at: indexPath, animated: true)
  62.         let vm = self.viewModel.cellsData[indexPath.row]
  63.         let vc = NewsDetailsViewController(newsVM: vm)
  64.         vc.hidesBottomBarWhenPushed = true
  65.         self.navigationController?.pushViewController(vc, animated: true)
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement