swift初始化一个项目导航栏和标签栏(nav和tabbar)

来源:互联网 发布:linux程序设计第四版 编辑:程序博客网 时间:2024/05/16 02:53

第一步:创建一个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几句话就解决了问题

0 0
原创粉丝点击