LeftViewController.swift 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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 gmscheduleViewController: 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. let locationViewController = storyboard.instantiateViewControllerWithIdentifier("LocationViewController") as! LocationViewController
  50. self.locationViewController = UINavigationController(rootViewController: locationViewController)
  51. let lablancaViewController = storyboard.instantiateViewControllerWithIdentifier("LablancaViewController") as! LablancaViewController
  52. self.lablancaViewController = UINavigationController(rootViewController: lablancaViewController)
  53. let scheduleViewController = storyboard.instantiateViewControllerWithIdentifier("ScheduleViewController") as! ScheduleViewController
  54. self.scheduleViewController = UINavigationController(rootViewController: scheduleViewController)
  55. let gmscheduleViewController = storyboard.instantiateViewControllerWithIdentifier("GmscheduleViewController") as! GmscheduleViewController
  56. self.gmscheduleViewController = UINavigationController(rootViewController: gmscheduleViewController)
  57. let activitiesViewController = storyboard.instantiateViewControllerWithIdentifier("ActivitiesViewController") as! ActivitiesViewController
  58. self.activitiesViewController = UINavigationController(rootViewController: activitiesViewController)
  59. let blogViewController = storyboard.instantiateViewControllerWithIdentifier("BlogViewController") as! BlogViewController
  60. self.blogViewController = UINavigationController(rootViewController: blogViewController)
  61. let galleryViewController = storyboard.instantiateViewControllerWithIdentifier("GalleryViewController") as! GalleryViewController
  62. self.galleryViewController = UINavigationController(rootViewController: galleryViewController)
  63. let settingsViewController = storyboard.instantiateViewControllerWithIdentifier("SettingsViewController") as! SettingsViewController
  64. self.settingsViewController = UINavigationController(rootViewController: settingsViewController)
  65. self.tableView.registerCellClass(BaseTableViewCell.self)
  66. //self.imageHeaderView = ImageHeaderView.loadNib()
  67. //self.view.addSubview(self.imageHeaderView)
  68. }
  69. override func viewDidAppear(animated: Bool) {
  70. super.viewDidAppear(animated)
  71. }
  72. override func viewDidLayoutSubviews() {
  73. super.viewDidLayoutSubviews()
  74. //self.imageHeaderView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160)
  75. self.view.layoutIfNeeded()
  76. }
  77. func changeViewController(menu: LeftMenu) {
  78. switch menu {
  79. case .Main:
  80. self.slideMenuController()?.changeMainViewController(self.mainViewController, close: true)
  81. case .Home:
  82. self.slideMenuController()?.changeMainViewController(self.homeViewController, close: true)
  83. case .Location:
  84. self.slideMenuController()?.changeMainViewController(self.locationViewController, close: true)
  85. case .Lablanca:
  86. self.slideMenuController()?.changeMainViewController(self.lablancaViewController, close: true)
  87. case .Schedule:
  88. self.slideMenuController()?.changeMainViewController(self.scheduleViewController, close: true)
  89. case .Gmschedule:
  90. self.slideMenuController()?.changeMainViewController(self.gmscheduleViewController, close: true)
  91. case .Activities:
  92. self.slideMenuController()?.changeMainViewController(self.activitiesViewController, close: true)
  93. case .Blog:
  94. self.slideMenuController()?.changeMainViewController(self.blogViewController, close: true)
  95. case .Gallery:
  96. self.slideMenuController()?.changeMainViewController(self.galleryViewController, close: true)
  97. case .Settings:
  98. self.slideMenuController()?.changeMainViewController(self.settingsViewController, close: true)
  99. }
  100. }
  101. }
  102. extension LeftViewController : UITableViewDelegate {
  103. func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
  104. if let menu = LeftMenu(rawValue: indexPath.item) {
  105. switch menu {
  106. case .Main, .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  107. return BaseTableViewCell.height()
  108. }
  109. }
  110. return 0
  111. }
  112. }
  113. extension LeftViewController : UITableViewDataSource {
  114. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  115. return menus.count
  116. }
  117. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  118. if let menu = LeftMenu(rawValue: indexPath.item) {
  119. switch menu {
  120. case .Main, .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  121. let cell = BaseTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: BaseTableViewCell.identifier)
  122. cell.setData(menus[indexPath.row])
  123. return cell
  124. }
  125. }
  126. return UITableViewCell()
  127. }
  128. func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  129. if let menu = LeftMenu(rawValue: indexPath.item) {
  130. self.changeViewController(menu)
  131. }
  132. }
  133. }
  134. extension LeftViewController: UIScrollViewDelegate {
  135. func scrollViewDidScroll(scrollView: UIScrollView) {
  136. if self.tableView == scrollView {
  137. }
  138. }
  139. }