ZoneMenuViewController.swift 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // ZoneMenuViewController.swift
  3. // ZoneBarManager
  4. //
  5. // Created by 刘振兴 on 2017/3/16.
  6. // Copyright © 2017年 zone. All rights reserved.
  7. //
  8. import UIKit
  9. import Alamofire
  10. import AlamofireImage
  11. import AlamofireObjectMapper
  12. import SwiftyJSON
  13. import ObjectMapper
  14. import CocoaLumberjack
  15. class ZoneMenuViewController: UIViewController {
  16. private var mainVC:ZoneMainCategoryViewController!
  17. private var subVC:ZoneSubCategoryViewController!
  18. fileprivate var apps:[Application] = [] {
  19. didSet {
  20. self.mainVC.apps = apps
  21. }
  22. }
  23. override func viewWillAppear(_ animated: Bool) {
  24. super.viewWillAppear(animated)
  25. notificationInit()
  26. }
  27. override func viewWillDisappear(_ animated: Bool) {
  28. NotificationCenter.default.removeObserver(self)
  29. }
  30. override func viewDidLoad() {
  31. super.viewDidLoad()
  32. commonInit()
  33. loadAppList()
  34. }
  35. private func commonInit(){
  36. self.automaticallyAdjustsScrollViewInsets = false
  37. //mainMenu
  38. if let mainVC = self.storyboard?.instantiateViewController(withIdentifier: "mainMenu") {
  39. self.mainVC = mainVC as! ZoneMainCategoryViewController
  40. self.addChild(mainVC)
  41. mainVC.view.frame = CGRect(x: 0, y: 0, width: view.bounds.width * 0.4, height: view.bounds.height)
  42. self.view.addSubview(mainVC.view)
  43. }
  44. if let subVC = self.storyboard?.instantiateViewController(withIdentifier: "subMenu") {
  45. self.subVC = subVC as! ZoneSubCategoryViewController
  46. self.addChild(subVC)
  47. subVC.view.frame = CGRect(x: view.bounds.width * 0.4, y: 0, width: view.bounds.width * 0.6, height: view.bounds.height)
  48. //let tView = subVC.view as! UITableView
  49. //tView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
  50. self.view.addSubview(subVC.view)
  51. }
  52. }
  53. private func notificationInit(){
  54. NotificationCenter.default.addObserver(self, selector: #selector(reveiveCategoryNotification(_:)), name: ZoneMainCategoryViewController.SELECT_MSG_NAME, object: nil)
  55. NotificationCenter.default.addObserver(self, selector: #selector(receiveSubNotification(_:)), name: ZoneSubCategoryViewController.SELEC_SUB_ITEM, object: nil)
  56. }
  57. @objc private func reveiveCategoryNotification(_ notification:NSNotification){
  58. let obj = notification.object
  59. self.subVC.app = obj as! Application
  60. }
  61. @objc private func receiveSubNotification(_ notification:NSNotification){
  62. let obj = notification.object
  63. self.performSegue(withIdentifier: "showStartFlowSegue", sender: obj)
  64. }
  65. func loadAppList(){
  66. let url = AppDelegate.o2Collect.generateURLWithAppContextKey(ApplicationContext.applicationContextKey, query: ApplicationContext.applicationListQuery, parameter: nil)
  67. self.showMessage(title: "应用加载中...")
  68. self.apps.removeAll()
  69. Alamofire.request(url!).responseArray(queue: nil, keyPath: "data", context: nil, completionHandler: { (response:DataResponse<[Application]>) in
  70. switch response.result {
  71. case .success(let apps):
  72. self.apps.append(contentsOf: apps)
  73. self.showSuccess(title: "加载完成")
  74. case .failure(let err):
  75. DDLogError(err.localizedDescription)
  76. self.showError(title: "加载失败")
  77. }
  78. })
  79. }
  80. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  81. if segue.identifier == "showStartFlowSegue" {
  82. let destVc = segue.destination as! TaskCreateViewController
  83. destVc.process = sender as? AppProcess
  84. }
  85. }
  86. override func didReceiveMemoryWarning() {
  87. super.didReceiveMemoryWarning()
  88. // Dispose of any resources that can be recreated.
  89. }
  90. }