zoukankan      html  css  js  c++  java
  • iOS 一种很方便的构造TarBar

    直接在TarBarController中操作,代码如下:

    #import "DLTabBarController.h"
    #import "ViewController.h"
    #import "TwoViewController.h"
    #import "ThreeViewController.h"
    #import "FourViewController.h"
    #import "FiveViewController.h"
    #import "DLNavigationController.h"
    
    
    #define kClassKey           @"rootVCClassString" // 控制器对应的字符串
    #define kTitleKey           @"title"             // title可以当做tabBarItem的title属性
    #define kImageKey           @"imageName"         // image显示
    #define kSelImageKey        @"selectedImageName" // 被选中后的image显示
    #define kNavigationTitleKey @"navigationItemTitle" // navigationItem的title属性
    
    
    @interface DLTabBarController ()
    
    @end
    
    @implementation DLTabBarController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 构造数组(为了防止控制器写错,应该现在外面写好后再复制粘贴进去)
        NSArray *childItemsArray = @[
                                     @{
                                         kClassKey           : @"ViewController",
                                         kTitleKey           : @"首页",
                                         kImageKey           : @"home",
                                         kSelImageKey        : @"home_select",
                                         kNavigationTitleKey : @"首页"
                                         },
                                     @{
                                         kClassKey           : @"TwoViewController",
                                         kTitleKey           : @"分类",
                                         kImageKey           : @"category",
                                         kSelImageKey        : @"category_select",
                                         kNavigationTitleKey : @"分类"
                                         },
                                     @{
                                         kClassKey           : @"ThreeViewController",
                                         kTitleKey           : @"",
                                         kImageKey           : @"center",
                                         kSelImageKey        : @"center_select",
                                         kNavigationTitleKey : @"home"
                                         },
                                     @{
                                         kClassKey           : @"FourViewController",
                                         kTitleKey           : @"购物车",
                                         kImageKey           : @"cart",
                                         kSelImageKey        : @"cart_select",
                                         kNavigationTitleKey : @"购物车"
                                         },
                                     @{
                                         kClassKey           : @"FiveViewController",
                                         kTitleKey           : @"",
                                         kImageKey           : @"mine",
                                         kSelImageKey        : @"mine_select",
                                         kNavigationTitleKey : @""
                                         }
                                     ];
        
        // 遍历字典得到对应的属性
        [childItemsArray enumerateObjectsUsingBlock:^(NSDictionary *dict, NSUInteger idx, BOOL * _Nonnull stop) {
            
            UIViewController *vc = [[NSClassFromString(dict[kClassKey]) alloc] init];
            vc.navigationItem.title = dict[kNavigationTitleKey];
            vc.tabBarItem.title = dict[kTitleKey];
            
            DLNavigationController *nav = [[DLNavigationController alloc] initWithRootViewController:vc];
            
            vc.tabBarItem.image = [[UIImage imageNamed:dict[kImageKey]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            vc.tabBarItem.selectedImage = [[UIImage imageNamed:dict[kSelImageKey]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
            
            [self addChildViewController:nav];
        }];
        
    }

    本人是很喜欢这种做法的,虽然在写 key 对应的值的时候可能出错。但是对于后面的操作我们可以省去不少的代码。所以我在项目中基本都用户这个操作

  • 相关阅读:
    VS2010 枚举注释任务
    osg例子中文翻译,半机翻
    怎么愉快地添加目标位置?
    变更路线节点。妈妈,我的强迫症有救啦!
    测试必备工具之抓包神器 Charles 如何抓取 https 数据包?
    测试必备工具之最强抓包神器 Charles,你会了么?
    ‘员工拒绝加班被判赔偿公司 1.8 万元’,作为测试猿你怕了么?
    全网最全测试点总结:N95 口罩应该如何测试?
    测试角度:如何看待三星大量手机系统崩溃并数据丢失事件?
    男生 vs 女生,谁更加适合做软件测试?
  • 原文地址:https://www.cnblogs.com/peaker-wu/p/5531272.html
Copyright © 2011-2022 走看看