IHTabBarController.swift 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // IHTabBarController.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/10.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. let kNotifactionIHTabBarControllerUpdateBadgeNumber = "kNotifactionIHTabBarControllerUpdateBadgeNumber"
  10. class IHTabBarController: UITabBarController {
  11. override func viewDidLoad() {
  12. super.viewDidLoad()
  13. NotificationCenter.default.addObserver(self, selector: #selector(notifyUpdateBadgeNumber(_:)), name: NSNotification.Name(kNotifactionIHTabBarControllerUpdateBadgeNumber), object: nil)
  14. //处理背景颜色
  15. let appearance = UITabBar.appearance()
  16. appearance.barTintColor = .white
  17. let line = UIView(frame: CGRect(x: 0, y: -0.5, width: KSCREENWIDTH, height: 0.5))
  18. //处理分割线
  19. line.backgroundColor = .white
  20. appearance.insertSubview(line, at: 0)
  21. addChildViewcontrollers()
  22. if Intermediate.hotelId == "" {
  23. IHAddressService.share.getFirstHotel { (hotelId, hotelName) in
  24. if let hotelId = hotelId{
  25. IHHomeService.share.getAlarmCountBadgeNumber(hotelId) { (badgeNumber) in
  26. let item = self.tabBar.items![3]
  27. if badgeNumber != "0"{
  28. item.badgeValue = badgeNumber
  29. }else{
  30. item.badgeValue = nil
  31. }
  32. }
  33. }
  34. }
  35. }else{
  36. IHHomeService.share.getAlarmCountBadgeNumber(Intermediate.hotelId) { (badgeNumber) in
  37. let item = self.tabBar.items![3]
  38. if badgeNumber != "0"{
  39. item.badgeValue = badgeNumber
  40. }else{
  41. item.badgeValue = nil
  42. }
  43. }
  44. }
  45. }
  46. deinit {
  47. NotificationCenter.default.removeObserver(self)
  48. }
  49. @objc func notifyUpdateBadgeNumber(_ notify:Notification) {
  50. let hotelId = notify.object as! String
  51. IHHomeService.share.getAlarmCountBadgeNumber(hotelId) { (badgeNumber) in
  52. let item = self.tabBar.items![3]
  53. if badgeNumber != "0"{
  54. item.badgeValue = badgeNumber
  55. }else{
  56. item.badgeValue = nil
  57. }
  58. }
  59. }
  60. func addChildViewcontrollers() {
  61. let dashboard = createSubViewController(controller: IHDashboardVCtr(), title: "概览", normalImage:"首页_未选中", selectedImage: "首页_选中")
  62. let area = createSubViewController(controller: IHAreaVCtr(), title: "房间", normalImage:"房间_未选中", selectedImage: "房间_选中")
  63. let equipment = createSubViewController(controller: IHEquipmentVCtr(), title: "设备", normalImage:"设备_未选中", selectedImage: "设备_选中")
  64. let service = createSubViewController(controller: IHServiceVCtr(), title: "维修", normalImage:"告警_未选中", selectedImage: "告警_选中")
  65. let tabArray = [dashboard,area,equipment,service]
  66. self.viewControllers = tabArray
  67. }
  68. func createSubViewController(controller:UIViewController,title:String,normalImage:String,selectedImage:String) -> IHNavigationController {
  69. // controller.title = title
  70. let navi = IHNavigationController(rootViewController: controller)
  71. navi.tabBarItem.title = title
  72. navi.tabBarItem.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor(hexString: "#573F95") as Any], for: .selected)
  73. navi.tabBarItem.image = UIImage(named: normalImage)
  74. navi.tabBarItem.selectedImage = UIImage(named:selectedImage)?.withRenderingMode(.alwaysOriginal)
  75. return navi
  76. }
  77. }