// // IHTabBarController.swift // Inhealth // // Created by weclouds on 2019/12/10. // Copyright © 2019 weclouds. All rights reserved. // import UIKit let kNotifactionIHTabBarControllerUpdateBadgeNumber = "kNotifactionIHTabBarControllerUpdateBadgeNumber" class IHTabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(notifyUpdateBadgeNumber(_:)), name: NSNotification.Name(kNotifactionIHTabBarControllerUpdateBadgeNumber), object: nil) //处理背景颜色 let appearance = UITabBar.appearance() appearance.barTintColor = .white let line = UIView(frame: CGRect(x: 0, y: -0.5, width: KSCREENWIDTH, height: 0.5)) //处理分割线 line.backgroundColor = .white appearance.insertSubview(line, at: 0) addChildViewcontrollers() if Intermediate.hotelId == "" { IHAddressService.share.getFirstHotel { (hotelId, hotelName) in if let hotelId = hotelId{ IHHomeService.share.getAlarmCountBadgeNumber(hotelId) { (badgeNumber) in let item = self.tabBar.items![3] if badgeNumber != "0"{ item.badgeValue = badgeNumber }else{ item.badgeValue = nil } } } } }else{ IHHomeService.share.getAlarmCountBadgeNumber(Intermediate.hotelId) { (badgeNumber) in let item = self.tabBar.items![3] if badgeNumber != "0"{ item.badgeValue = badgeNumber }else{ item.badgeValue = nil } } } } deinit { NotificationCenter.default.removeObserver(self) } @objc func notifyUpdateBadgeNumber(_ notify:Notification) { let hotelId = notify.object as! String IHHomeService.share.getAlarmCountBadgeNumber(hotelId) { (badgeNumber) in let item = self.tabBar.items![3] if badgeNumber != "0"{ item.badgeValue = badgeNumber }else{ item.badgeValue = nil } } } func addChildViewcontrollers() { let dashboard = createSubViewController(controller: IHDashboardVCtr(), title: "概览", normalImage:"首页_未选中", selectedImage: "首页_选中") let area = createSubViewController(controller: IHAreaVCtr(), title: "房间", normalImage:"房间_未选中", selectedImage: "房间_选中") let equipment = createSubViewController(controller: IHEquipmentVCtr(), title: "设备", normalImage:"设备_未选中", selectedImage: "设备_选中") let service = createSubViewController(controller: IHServiceVCtr(), title: "维修", normalImage:"告警_未选中", selectedImage: "告警_选中") let tabArray = [dashboard,area,equipment,service] self.viewControllers = tabArray } func createSubViewController(controller:UIViewController,title:String,normalImage:String,selectedImage:String) -> IHNavigationController { // controller.title = title let navi = IHNavigationController(rootViewController: controller) navi.tabBarItem.title = title navi.tabBarItem.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor(hexString: "#573F95") as Any], for: .selected) navi.tabBarItem.image = UIImage(named: normalImage) navi.tabBarItem.selectedImage = UIImage(named:selectedImage)?.withRenderingMode(.alwaysOriginal) return navi } }