Guest User

Untitled

a guest
Dec 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. import UIKit
  2.  
  3. struct SideMenuListItem {
  4. var name:String
  5. var isSelected: Bool
  6. var notificationCount:Int
  7. var viewController:UIViewController
  8. }
  9.  
  10. protocol SideMenuItemTappedDelegate:class {
  11. func itemTapped(item:SideMenuListItem,index:Int)
  12. }
  13.  
  14. class SideMenuListVC: UIViewController {
  15.  
  16. //MARK:- Outlets
  17.  
  18. @IBOutlet weak var tableView: UITableView!
  19.  
  20. //MARK:- Var
  21.  
  22. weak var delegate : SideMenuItemTappedDelegate?
  23.  
  24. //Please ignore repetition `viewController` this is just for testing
  25. private let menuItems = [SideMenuListItem(name: "Inbox", isSelected: false, notificationCount: 25,viewController:MapVC.viewController()),
  26. SideMenuListItem(name: "Stats", isSelected: false, notificationCount: 0,viewController:PageContentViewController.viewController(pageData:PageData(title: "How to do", desc: "TEST STATS", image: UIImage(named: "Rectangle 2 copy")!))),
  27. SideMenuListItem(name: "Calendar", isSelected: false, notificationCount: 12,viewController:MapVC.viewController()),
  28. SideMenuListItem(name: "Map", isSelected: true, notificationCount: 0,viewController:MapVC.viewController()),
  29. SideMenuListItem(name: "Settings", isSelected: false, notificationCount: 0,viewController:PageContentViewController.viewController(pageData:PageData(title: "How to do", desc: "TEST SETTINGS", image: UIImage(named: "Rectangle 2 copy")!)))]
  30.  
  31. var getCurrentSelectedItem:SideMenuListItem? {
  32. return menuItems.first{$0.isSelected}
  33. }
  34.  
  35. ...
  36.  
  37. import UIKit
  38. import SideMenu
  39.  
  40. class SideMenuVC: UIViewController {
  41.  
  42. //--------------------------------------------------------------------------------
  43.  
  44. //MARK:- Memory Managment Methods
  45.  
  46. //--------------------------------------------------------------------------------
  47.  
  48. override func didReceiveMemoryWarning() {
  49. super.didReceiveMemoryWarning()
  50. }
  51.  
  52.  
  53. //--------------------------------------------------------------------------------
  54.  
  55. //MARK:- Custom Methdos
  56.  
  57. //--------------------------------------------------------------------------------
  58.  
  59. private func configureSideMenu() {
  60. AppGlobalManager.sharedManager.setupSideMenu()
  61. AppGlobalManager.sharedManager.leftMenuViewController.delegate = self
  62.  
  63. if let vc = AppGlobalManager.sharedManager.leftMenuViewController.getCurrentSelectedItem?.viewController {
  64. self.addChildVC(vc)
  65. }
  66.  
  67. }
  68.  
  69. private func addChildVC (_ vc:UIViewController) {
  70. self.addChild(vc)
  71. self.view.addSubview(vc.view)
  72. vc.view.frame = self.view.bounds
  73. vc.didMove(toParent: self)
  74.  
  75. }
  76.  
  77. //--------------------------------------------------------------------------------
  78.  
  79. //MARK:- ViewLifeCycle Methods
  80.  
  81. //--------------------------------------------------------------------------------
  82.  
  83.  
  84. override func viewDidLoad() {
  85. super.viewDidLoad()
  86.  
  87. self.configureSideMenu()
  88. }
  89.  
  90. //--------------------------------------------------------------------------------
  91.  
  92. override func viewWillAppear(_ animated: Bool) {
  93. super.viewWillAppear(animated)
  94. }
  95.  
  96. //--------------------------------------------------------------------------------
  97.  
  98. override func viewDidDisappear(_ animated: Bool) {
  99. super.viewDidDisappear(animated)
  100. }
  101.  
  102.  
  103.  
  104. }
  105.  
  106. import UIKit
  107. import SideMenu
  108. import Foundation
  109.  
  110. class AppGlobalManager: NSObject {
  111.  
  112. static let sharedManager = AppGlobalManager()
  113.  
  114. lazy var leftMenuViewController = SideMenuListVC.viewController()
  115.  
  116. public func setupSideMenu () {
  117. let sideMenu = UISideMenuNavigationController(rootViewController: leftMenuViewController)
  118. SideMenuManager.default.menuLeftNavigationController = sideMenu
  119. SideMenuManager.default.menuLeftNavigationController?.isNavigationBarHidden = true
  120. SideMenuManager.default.menuWidth = UIScreen.main.bounds.width
  121. SideMenuManager.default.menuPresentMode = .menuDissolveIn
  122. SideMenuManager.default.menuFadeStatusBar = false
  123.  
  124. }
  125.  
  126. }
Add Comment
Please, Sign In to add comment