第一步:创建一个UITabBarController的类,全部代码如下,
里面包含了导航栏,所以在创建的时候只要集成这个类,然后,设置父类里面的数组的值,就好了
import UIKit
class BaseTabBarController: UITabBarController {
var titles = [String]()
var selectedImgNames = [String]()
var normalImgNames = [String]()
var VCs = [UIViewController]()
override func viewDidLoad() {
super.viewDidLoad()
print(titles.count)
setUpUI()
}
}
extension BaseTabBarController{
fileprivate func setUpUI(){
for item in 0..<titles.count {
let vc = VCs[item]
vc.tabBarItem.image = UIImage.init(named: normalImgNames[item])?.withRenderingMode(.alwaysOriginal)
vc.tabBarItem.title = titles[item]
vc.tabBarItem.selectedImage = UIImage.init(named: selectedImgNames[item])?.withRenderingMode(.alwaysOriginal)
vc.tabBarItem!.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.lightGray], for: UIControlState())
vc.tabBarItem!.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .selected)
let navc = UINavigationController.init(rootViewController: vc)
vc.navigationItem.title = titles[item]
self.addChildViewController(navc)
}
}
}
第二部:创建一个类,继承上面封装好的tabbarcontrol就好了
import UIKit
class MainViewController: BaseTabBarController {
override func viewDidLoad() {
titles = ["流程管理","业务管理","客户管理","租后管理","智能监控"]
selectedImgNames = ["tabbar03_selected","tabbar03_selected","tabbar03_selected","tabbar03_selected","tabbar03_selected"]
normalImgNames = ["tabbar03_normal","tabbar03_normal","tabbar03_normal","tabbar03_normal","tabbar03_normal"]
VCs = [processManagementVC(),businessManagementVC(),ustomerManagementVC(),afterRentManagementVC(),intelligentMonitoringVC()]
super.viewDidLoad()
}
}
//OK几句话就解决了问题