MainTabBarController.m
#import "MainTabBarController.h"
#import "BDJTabBar.h"
#import "MenuModel.h"
#import "EssenceViewController.h"
#import "NewsViewController.h"
@interface MainTabBarController ()
@end
@implementation MainTabBarController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//设置tabBar的文字颜色
[UITabBar appearance].tintColor = [UIColor colorWithWhite:64.0/255.0 alpha:1.0];
//创建视图控制器
[self createViewControllers];
//使用自定制的tabbar
[self setValue:[[BDJTabBar alloc] init] forKey:@"tabBar"];
//请求导航标题列表
[self downloadNavList];
}
- (void)downloadNavList {
__weak typeof(self) weakSelf = self;
[BDJDownloader downloadWithUrlString:kNavBarListUrl finish:^(NSData *data) {
//解析数据
MenuModel *model = [[MenuModel alloc] initWithData:data error:nil];
//万一 数组 是 空的, 要先 判断一下。
//将数据传给精华和最新的界面
//精华
UINavigationController *essenceNavCtrl = (UINavigationController *)[weakSelf.viewControllers firstObject];
EssenceViewController *essenceCtrl = (EssenceViewController *)[essenceNavCtrl.viewControllers firstObject];
essenceCtrl.subModel = model.menus[0];
//不能 这样
//因为 要取到的 essenceCtrl ,在 一个 指定的 UINavigationController里面。
// 要 取出来。
// EssenceViewController * essenceCtrl = (EssenceViewController *) [weakSelf.viewControllers firstObject];
//
// essenceCtrl.subModel = model.menus[0];
// //最新
// UINavigationController *newsNavCtrl = (UINavigationController *)[weakSelf.viewControllers firstObject];
// NewsViewController *newsCtrl = (NewsViewController *)newsNavCtrl.viewControllers[1];
// newsCtrl.subModel = model.menus[1];
//最新 ,有很多 要注意的。
UINavigationController * newsNavigationCtrl = (UINavigationController *) weakSelf.viewControllers[1] ;
// (UINavigationController *) [ weakSelf.viewControllers firstObject ]
NewsViewController * newsControl = (NewsViewController *) [newsNavigationCtrl.viewControllers firstObject];
newsControl.subModel = model.menus[1];
//model.menus[0]
} failure:^(NSError *error) {
NSLog(@"%@", error);
}];
}
//添加子视图控制器
/**
* clsName:视图控制器的名字
* title:tabBarItem的文字
* imageName: tabBarItem的默认图片
* selectImageName:tabBarItem的选中图片
*/
- (void)addViewController:(NSString *)clsName title:(NSString *)title imageName:(NSString *)imageName selectImageName:(NSString *)selectImageName {
//创建视图控制器
Class cls = NSClassFromString(clsName);
UIViewController *ctrl = [[cls alloc] init];
//设置图片和文字
ctrl.tabBarItem.title = title;
ctrl.tabBarItem.image = [UIImage imageNamed:imageName];
//UIImageRenderingModeAlwaysOriginal:使用原始图片
ctrl.tabBarItem.selectedImage = [[UIImage imageNamed:selectImageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//导航
UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:ctrl];
//添加子视图控制器
[self addChildViewController:navCtrl];
}
//创建视图控制器
- (void)createViewControllers {
//精华
[self addViewController:@"EssenceViewController" title:@"精华" imageName:@"tabBar_essence_icon" selectImageName:@"tabBar_essence_click_icon"];
//最新
[self addViewController:@"NewsViewController" title:@"最新" imageName:@"tabBar_new_icon" selectImageName:@"tabBar_new_click_icon"];
//关注
[self addViewController:@"FollowViewController" title:@"关注" imageName:@"tabBar_friendTrends_icon" selectImageName:@"tabBar_friendTrends_click_icon"];
//我
[self addViewController:@"ProfileViewController" title:@"我" imageName:@"tabBar_me_icon" selectImageName:@"tabBar_me_click_icon"];
}