@@ -8,11 +8,39 @@
9import UIKit
9import UIKit
10import TinyConstraints
10import TinyConstraints
12// MARK:- Controller with posts and channels availiable.
13// MARK:- Controller with posts and channels availiable.
13// Search is availiable within every table (posts and channels). Has button-functionality for boths post and chnnels
14// Search is availiable within every table (posts and channels). Has button-functionality for boths post and chnnels
14−class NewsController: UIViewController
15+class NewsController: UIViewController, UISearchControllerDelegate, UITableViewDelegate, UITableViewDataSource
19+ var array = ["Faculty 1", "Faculty 2","Faculty 3","Faculty 4","Faculty 5","Faculty 6","Faculty 7","Faculty 8","Faculty 9","Faculty 10","Faculty 11","Faculty 12","Faculty 13","Faculty 14","Faculty 15","Faculty 16","Faculty 17","Faculty 18"]
21+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
26+ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
27+ let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
29+ cell.textLabel?.text = array[indexPath.row]
33+ func presentSearchController(_ searchController: UISearchController) {
36+ displayTableView() //setup
38+ animateTable(some: true)
41+ func willDismissSearchController(_ searchController: UISearchController) {
17 @IBOutlet weak var tableView: UITableView!
45 @IBOutlet weak var tableView: UITableView!
@@ -21,24 +49,25 @@ class NewsController: UIViewController
21 var dataSourse: [Post] = [Post(dataArray: [.text("Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker. \n On sait depuis longtemps que travailler avec du texte lisible et contenant du sens est source de distractions, et empêche de se concentrer sur la mise en page elle-même. L'avantage du Lorem Ipsum sur un texte générique comme 'Du texte. Du texte. Du texte.' est qu'il possède une distribution de lettres plus ou moins normale, et en tout cas comparable avec celle du français standard. De nombreuses suites logicielles de mise en page ou éditeurs de sites Web ont fait du Lorem Ipsum leur faux texte par défaut, et une recherche pour 'Lorem Ipsum' vous conduira vers de nombreux sites qui n'en sont encore qu'à leur phase de construction. Plusieurs versions sont apparues avec le temps, parfois par accident, souvent intentionnellement (histoire d'y rajouter de petits clins d'oeil, voire des phrases embarassantes).")], from: User(name: "vbogomazova", id: 2, fullName: "Богомазова Вероника Львовна"), date: "14.02.19 в 12:05")]
49 var dataSourse: [Post] = [Post(dataArray: [.text("Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un imprimeur anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker. \n On sait depuis longtemps que travailler avec du texte lisible et contenant du sens est source de distractions, et empêche de se concentrer sur la mise en page elle-même. L'avantage du Lorem Ipsum sur un texte générique comme 'Du texte. Du texte. Du texte.' est qu'il possède une distribution de lettres plus ou moins normale, et en tout cas comparable avec celle du français standard. De nombreuses suites logicielles de mise en page ou éditeurs de sites Web ont fait du Lorem Ipsum leur faux texte par défaut, et une recherche pour 'Lorem Ipsum' vous conduira vers de nombreux sites qui n'en sont encore qu'à leur phase de construction. Plusieurs versions sont apparues avec le temps, parfois par accident, souvent intentionnellement (histoire d'y rajouter de petits clins d'oeil, voire des phrases embarassantes).")], from: User(name: "vbogomazova", id: 2, fullName: "Богомазова Вероника Львовна"), date: "14.02.19 в 12:05")]
23 var news = NewsVC()
51 var news = NewsVC()
24− var channels = ChannelsController()
26 override func viewDidLoad()
53 override func viewDidLoad()
28 super.viewDidLoad()
55 super.viewDidLoad()
29− tableView.register(HeaderNewsChannels.self, forCellReuseIdentifier: headerNewsChannelsVC)
30 tableView.register(PostViewCell.self, forCellReuseIdentifier: postCellId)
56 tableView.register(PostViewCell.self, forCellReuseIdentifier: postCellId)
57+ tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
59+ //searchController.delegate = self
60+ searchController.obscuresBackgroundDuringPresentation = false
32 news.dataSourse = dataSourse
62 news.dataSourse = dataSourse
33 news.viewController = self
63 news.viewController = self
35− news.type = .NEWS("Posts", "Channels")
37 tableView.delegate = news
66 tableView.delegate = news
38 tableView.dataSource = news
67 tableView.dataSource = news
39 tableView.reloadData()
68 tableView.reloadData()
41−
70+ news.type = .NEWS
43 setUpNavigationItemsforPosts()
72 setUpNavigationItemsforPosts()
44 searchController.searchBar.placeholder = "Search anything"
73 searchController.searchBar.placeholder = "Search anything"
@@ -49,8 +78,55 @@ class NewsController: UIViewController
49 setUpBanner()
78 setUpBanner()
82+ var facultyTableView = UITableView()
84+ func setUpTableView()
86+ facultyTableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
87+ facultyTableView.delegate = self
88+ facultyTableView.dataSource = self
89+ let screenSize: CGRect = UIScreen.main.bounds
91+ let screenWidth = screenSize.width
92+ let screenHeight = screenSize.height
93+ facultyTableView.frame = CGRect(x: 0, y: 0, width: Int(screenWidth), height: Int(screenHeight))
96+ func displayTableView(){
98+ // the most important line
99+ facultyTableView.translatesAutoresizingMaskIntoConstraints = false
100+ facultyTableView.backgroundColor = UIColor(white: 1, alpha: 1)
101+ view.addSubview(facultyTableView)
103+ facultyTableView.isHidden = true
106+ constrain(facultyTableView, view){
109+ tableView.top == view.safeAreaLayoutGuide.top
110+ tableView.left == view.left
111+ tableView.right == view.right
112+ tableView.bottom == view.safeAreaLayoutGuide.bottom
117+ // animation of the table cells
118+ func animateTable(some: Bool){
119+ self.facultyTableView.reloadData()
120+ self.facultyTableView.isHidden = false
123+ func dismissTable() {
124+ self.facultyTableView.isHidden = true
52 override func viewWillAppear(_ animated: Bool) {
127 override func viewWillAppear(_ animated: Bool) {
53 super.viewWillAppear(animated)
128 super.viewWillAppear(animated)
54 navigationController?.navigationBar.prefersLargeTitles = true
130 navigationController?.navigationBar.prefersLargeTitles = true
@@ -62,13 +138,7 @@ class NewsController: UIViewController
62 tableView.reloadData()
138 tableView.reloadData()
65− func setUpNavigationItemsForChannels(){
66− navigationItem.title = "Channels"
67− navigationItem.rightBarButtonItems = [UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addChannel))]
141+ //navigationItem.rightBarButtonItems = [UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addChannel))]
68− tableView.delegate = channels
69− tableView.dataSource = channels
70− tableView.reloadData()
73 @objc func writePost(_ barItem: UIBarButtonItem)
143 @objc func writePost(_ barItem: UIBarButtonItem)