Swift 4 循环动态创建对象

通过NSClassFromString动态创建TabBar控制器的子控制器,主要注意点在获取其类名时还需要在之前加上工程名。

    //控制器的名字
    let ctrlNames = [
        "MainPageViewController",
        "NearShopViewController",
        "ChooseViewController",
        "MyViewController"]
    
    //标题
    let titles = ["首页","附近","精选","我的"]
    
    //tabbar图片
    let normalImageNames = [
    "icon_tab_shouye_normal",
    "icon_tab_fujin_normal",
    "icon_tab_selection_normal",
    "icon_tab_wode_normal"];
    
    //选中的tabbar图片
    let selectedImageNames = [
    "icon_tab_shouye_highlight",
    "icon_tab_fujin_highlight",
    "icon_tab_selection_highlight",
    "icon_tab_wode_highlight"];
    
    
    //动态创建对象
    let projectName = Bundle.main.infoDictionary?["CFBundleName"] as! String
    for i in 0..<ctrlNames.count
    {
        //类   通过NSClassFromString方法创建类,类的字符串为:工程名 + “.” + 类名      
        let cls = NSClassFromString(projectName + "." + ctrlNames[i]) as! UIViewController.Type
        //创建控制器对象
        let viewController = cls.init()
        //创建导航控制器
        let nav = UINavigationController(rootViewController: viewController)
        
        viewController.title = titles[i]
        viewController.tabBarItem.image = UIImage(named: normalImageNames[i])
        viewController.tabBarItem.selectedImage = UIImage(named: selectedImageNames[i])
        
        //添加子控制器
        addChildViewController(nav)
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,136评论 25 709
  • 北京城墙被拆除后,她成为了中国唯一一座保存完整的古县城,这就是我的家乡——平遥古城。 “足疗30元一位……”在南大...
    皮皮七阅读 3,311评论 0 0
  • 亲爱的符范范: 十年后的你好吗??今天突然想起十年后的你,便给你写封信,十年后的今天是否也这样阳光明媚呢?十...
    符范范阅读 3,919评论 10 6
  • 一 抠像 ⒈把人物抠出来 可以在调整边缘的构图里更改黑白底(与原本图片底色不同的) 方便观察边缘修改情况 ※※※...
    Kisses_Hugs阅读 3,658评论 0 0
  • 临阵方持枪,自傲笑孤芳 驰马阵中虐,孤身谁敌峰
    傅南阅读 1,468评论 0 0

友情链接更多精彩内容