博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 一种很方便的构造TarBar
阅读量:5330 次
发布时间:2019-06-14

本文共 3830 字,大约阅读时间需要 12 分钟。

直接在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 对应的值的时候可能出错。但是对于后面的操作我们可以省去不少的代码。所以我在项目中基本都用户这个操作

转载于:https://www.cnblogs.com/peaker-wu/p/5531272.html

你可能感兴趣的文章
从程序员到项目经理(7):程序员加油站 -- 完美主义也是一种错
查看>>
雷林鹏分享:Redis 简介
查看>>
自卑都是自己不踏实做事的表现
查看>>
C# 网页自动填表自动登录 .
查看>>
netfilter 和 iptables
查看>>
洛谷P1005 矩阵取数游戏
查看>>
Django ORM操作
查看>>
Problem Collection II 构造
查看>>
用swift写的一款小游戏,模仿的僵尸危机
查看>>
2018暑假第二周总结(7.16-7.22)
查看>>
Java_学生信息管理系统——数组版——初次编写
查看>>
2012年最佳30款免费 WordPress 主题
查看>>
在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
查看>>
HDU-1150 Machine Schedule 二分图匹配
查看>>
单例模式的5种写法
查看>>
安卓问题报告小记(四):Some projects cannot be imported because they already exist in the workspace...
查看>>
显示地图
查看>>
无线通信基础(一):无线网络演进
查看>>
VC++ 6.0 快捷键
查看>>
如何在工作中快速成长?阿里资深架构师给工程师的10个简单技巧
查看>>