LeftViewController.swift 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //
  2. // LeftViewController.swift
  3. // Gasteizko Margolariak
  4. //
  5. // Created by Inigo Valentin on 2016-08-23
  6. // Copyright © 2016 Inigo Valentin. All rights reserved.
  7. //
  8. // Based on the work of Yuji Hato.
  9. //
  10. import UIKit
  11. enum LeftMenu: Int {
  12. case Main = 0
  13. case Home
  14. case Location
  15. case Lablanca
  16. case Schedule
  17. case Gmschedule
  18. case Activities
  19. case Blog
  20. case Gallery
  21. case Settings
  22. }
  23. protocol LeftMenuProtocol : class {
  24. func changeViewController(menu: LeftMenu)
  25. }
  26. class LeftViewController : UIViewController, LeftMenuProtocol {
  27. @IBOutlet weak var tableView: UITableView!
  28. var menus = ["Home", "Localizacion", "La Blanca", "Programa de Fiestas", "Programa Margolari", "Actividades", "Blog", "Galeria", "Ajustes"]
  29. var mainViewController: UIViewController!
  30. var homeViewController: UIViewController!
  31. var locationViewController: UIViewController!
  32. var lablancaViewController: UIViewController!
  33. var scheduleViewController: UIViewController!
  34. var gmsccheduleViewController: UIViewController!
  35. var activitiesViewController: UIViewController!
  36. var blogViewController: UIViewController!
  37. var galleryViewController: UIViewController!
  38. var settingsViewController: UIViewController!
  39. var imageHeaderView: ImageHeaderView!
  40. required init?(coder aDecoder: NSCoder) {
  41. super.init(coder: aDecoder)
  42. }
  43. override func viewDidLoad() {
  44. super.viewDidLoad()
  45. self.tableView.separatorColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1.0)
  46. let storyboard = UIStoryboard(name: "Main", bundle: nil)
  47. let homeViewController = storyboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
  48. self.homeViewController = UINavigationController(rootViewController: homeViewController)
  49. self.tableView.registerCellClass(BaseTableViewCell.self)
  50. self.imageHeaderView = ImageHeaderView.loadNib()
  51. self.view.addSubview(self.imageHeaderView)
  52. }
  53. override func viewDidAppear(animated: Bool) {
  54. super.viewDidAppear(animated)
  55. }
  56. override func viewDidLayoutSubviews() {
  57. super.viewDidLayoutSubviews()
  58. self.imageHeaderView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160)
  59. self.view.layoutIfNeeded()
  60. }
  61. func changeViewController(menu: LeftMenu) {
  62. switch menu {
  63. case .Main:
  64. self.slideMenuController()?.changeMainViewController(self.mainViewController, close: true)
  65. case .Home:
  66. self.slideMenuController()?.changeMainViewController(self.homeViewController, close: true)
  67. default: //Delete default
  68. self.slideMenuController()?.changeMainViewController(self.homeViewController, close: true)
  69. }
  70. }
  71. }
  72. extension LeftViewController : UITableViewDelegate {
  73. func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
  74. if let menu = LeftMenu(rawValue: indexPath.item) {
  75. switch menu {
  76. case .Main, .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  77. return BaseTableViewCell.height()
  78. }
  79. }
  80. return 0
  81. }
  82. }
  83. extension LeftViewController : UITableViewDataSource {
  84. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  85. return menus.count
  86. }
  87. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  88. if let menu = LeftMenu(rawValue: indexPath.item) {
  89. switch menu {
  90. case .Main, .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  91. let cell = BaseTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: BaseTableViewCell.identifier)
  92. cell.setData(menus[indexPath.row])
  93. return cell
  94. }
  95. }
  96. return UITableViewCell()
  97. }
  98. func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  99. if let menu = LeftMenu(rawValue: indexPath.item) {
  100. self.changeViewController(menu)
  101. }
  102. }
  103. }
  104. extension LeftViewController: UIScrollViewDelegate {
  105. func scrollViewDidScroll(scrollView: UIScrollView) {
  106. if self.tableView == scrollView {
  107. }
  108. }
  109. }