LeftViewController.swift 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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 Home = 0
  13. case Location
  14. case Lablanca
  15. case Schedule
  16. case Gmschedule
  17. case Activities
  18. case Blog
  19. case Gallery
  20. case Settings
  21. }
  22. protocol LeftMenuProtocol : class {
  23. func changeViewController(menu: LeftMenu)
  24. }
  25. class LeftViewController : UIViewController, LeftMenuProtocol {
  26. @IBOutlet weak var tableView: UITableView!
  27. var menus = ["Home", "Localizacion", "La Blanca", "Programa de Fiestas", "Programa Margolari", "Actividades", "Blog", "Galeria", "Ajustes"]
  28. var homeViewController: UIViewController!
  29. var locationViewController: UIViewController!
  30. var lablancaViewController: UIViewController!
  31. var scheduleViewController: UIViewController!
  32. var gmscheduleViewController: UIViewController!
  33. var activitiesViewController: UIViewController!
  34. var blogViewController: UIViewController!
  35. var galleryViewController: UIViewController!
  36. var settingsViewController: UIViewController!
  37. // var imageHeaderView: ImageHeaderView!
  38. required init?(coder aDecoder: NSCoder) {
  39. super.init(coder: aDecoder)
  40. }
  41. override func viewDidLoad() {
  42. super.viewDidLoad()
  43. //self.tableView.separatorColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1.0)
  44. let storyboard = UIStoryboard(name: "Main", bundle: nil)
  45. let homeViewController = storyboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
  46. self.homeViewController = UINavigationController(rootViewController: homeViewController)
  47. let locationViewController = storyboard.instantiateViewControllerWithIdentifier("LocationViewController") as! LocationViewController
  48. self.locationViewController = UINavigationController(rootViewController: locationViewController)
  49. let lablancaViewController = storyboard.instantiateViewControllerWithIdentifier("LablancaViewController") as! LablancaViewController
  50. self.lablancaViewController = UINavigationController(rootViewController: lablancaViewController)
  51. let scheduleViewController = storyboard.instantiateViewControllerWithIdentifier("ScheduleViewController") as! ScheduleViewController
  52. self.scheduleViewController = UINavigationController(rootViewController: scheduleViewController)
  53. let gmscheduleViewController = storyboard.instantiateViewControllerWithIdentifier("GmscheduleViewController") as! GmscheduleViewController
  54. self.gmscheduleViewController = UINavigationController(rootViewController: gmscheduleViewController)
  55. let activitiesViewController = storyboard.instantiateViewControllerWithIdentifier("ActivitiesViewController") as! ActivitiesViewController
  56. self.activitiesViewController = UINavigationController(rootViewController: activitiesViewController)
  57. let blogViewController = storyboard.instantiateViewControllerWithIdentifier("BlogViewController") as! BlogViewController
  58. self.blogViewController = UINavigationController(rootViewController: blogViewController)
  59. let galleryViewController = storyboard.instantiateViewControllerWithIdentifier("GalleryViewController") as! GalleryViewController
  60. self.galleryViewController = UINavigationController(rootViewController: galleryViewController)
  61. let settingsViewController = storyboard.instantiateViewControllerWithIdentifier("SettingsViewController") as! SettingsViewController
  62. self.settingsViewController = UINavigationController(rootViewController: settingsViewController)
  63. self.tableView.registerCellClass(BaseTableViewCell.self)
  64. //self.imageHeaderView = ImageHeaderView.loadNib()
  65. //self.view.addSubview(self.imageHeaderView)
  66. }
  67. override func viewDidAppear(animated: Bool) {
  68. super.viewDidAppear(animated)
  69. }
  70. override func viewDidLayoutSubviews() {
  71. super.viewDidLayoutSubviews()
  72. //self.imageHeaderView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160)
  73. self.view.layoutIfNeeded()
  74. }
  75. func changeViewController(menu: LeftMenu) {
  76. print("Selected item: \(menu)")
  77. switch menu {
  78. case .Home:
  79. self.slideMenuController()?.changeMainViewController(self.homeViewController, close: true)
  80. case .Location:
  81. self.slideMenuController()?.changeMainViewController(self.locationViewController, close: true)
  82. case .Lablanca:
  83. self.slideMenuController()?.changeMainViewController(self.lablancaViewController, close: true)
  84. case .Schedule:
  85. self.slideMenuController()?.changeMainViewController(self.scheduleViewController, close: true)
  86. case .Gmschedule:
  87. self.slideMenuController()?.changeMainViewController(self.gmscheduleViewController, close: true)
  88. case .Activities:
  89. self.slideMenuController()?.changeMainViewController(self.activitiesViewController, close: true)
  90. case .Blog:
  91. self.slideMenuController()?.changeMainViewController(self.blogViewController, close: true)
  92. case .Gallery:
  93. self.slideMenuController()?.changeMainViewController(self.galleryViewController, close: true)
  94. case .Settings:
  95. self.slideMenuController()?.changeMainViewController(self.settingsViewController, close: true)
  96. }
  97. }
  98. }
  99. extension LeftViewController : UITableViewDelegate {
  100. func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
  101. if let menu = LeftMenu(rawValue: indexPath.item) {
  102. switch menu {
  103. case .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  104. return BaseTableViewCell.height()
  105. }
  106. }
  107. return 0
  108. }
  109. }
  110. extension LeftViewController : UITableViewDataSource {
  111. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  112. return menus.count
  113. }
  114. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  115. if let menu = LeftMenu(rawValue: indexPath.item) {
  116. switch menu {
  117. case .Home, .Location, .Lablanca, .Schedule, .Gmschedule, .Activities, .Blog, .Gallery, .Settings:
  118. let cell = BaseTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: BaseTableViewCell.identifier)
  119. cell.setData(menus[indexPath.row])
  120. return cell
  121. }
  122. }
  123. return UITableViewCell()
  124. }
  125. func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  126. if let menu = LeftMenu(rawValue: indexPath.item) {
  127. self.changeViewController(menu)
  128. }
  129. }
  130. }
  131. extension LeftViewController: UIScrollViewDelegate {
  132. func scrollViewDidScroll(scrollView: UIScrollView) {
  133. if self.tableView == scrollView {
  134. }
  135. }
  136. }