掌厨: 20160903 , 一二三

创建 viewController, 凭借 json 文件, 任意显示想展示的内容 ,

不需App 升级

自定制 下面 的 tabBar, 隐藏 系统的, 显示 自己制造的 view

应该 用 解耦,

何必 UIButton + UILabel,
UIButton ,很强大,
系统的 UITab



import UIKit

class MainTabBarController: UITabBarController {
    
    
    //tabbar背景视图
    private var bgView: UIView?
    
    
    //json文件对应的数组
    //计算属性
    private var array: Array>? {
        
        get {
            //读文件
            let path = NSBundle.mainBundle().pathForResource("Ctrl.json", ofType: nil)
            
            var myArray: Array>? = nil
            if let filePath = path {
                
                let data = NSData(contentsOfFile: filePath)
                if let jsonData = data {
                    
                    do {
                    
                        let jsonValue = try NSJSONSerialization.JSONObjectWithData(jsonData, options: .MutableContainers)
                        if jsonValue.isKindOfClass(NSArray.self) {
                            myArray = jsonValue as? Array>
                        }
                        
                    }catch {
                        //程序出现异常
                        print(error)
                        return nil
                    }
                    
                    
                }
                
            }
            
            return myArray
        }
    }
 

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        //Swift里面,一般在类的内部调用属性和方法的时候,可以不写self,一般在闭包里面写self
        //创建视图控制器
        createViewControllers()
    }
    
    
    //创建视图控制器
    func createViewControllers(){
        
        //视图控制器名字
        var ctrlNames = [String]()
        //tabbar上面的图片
        var imageNames = [String]()
        //tabbar上面的标题文字
        var titleNames = [String]()
        
        if let tmpArray = self.array {
            //json文件的数据解析成功
            //并且数组里面有数据
            for dict in tmpArray {
                
                let name = dict["ctrlName"]
                let titleName = dict["titleName"]
                let imageName = dict["imageName"]
                
                ctrlNames.append(name!)
                titleNames.append(titleName!)
                imageNames.append(imageName!)
            }
            
            
        }else{
            ctrlNames = ["CookBookViewController", "CommunityViewController","MallViewController","FoodClassViewController","ProfileViewController"]
        
            
            titleNames = ["食材","社区","商城","食课","我的"]
            imageNames = ["home","community","shop","shike","mine"]
        }
        
        
        
        var vCtrlArray = Array()
        for i in 0..

你可能感兴趣的:(掌厨: 20160903 , 一二三)