ZXTabBarController.m 4.38 KB
//
//  ZXTabBarController.m
//  ZXBaseProject
//
//  Created by 张旭 on 2017/1/10.
//  Copyright © 2017年 cnlive. All rights reserved.
//

#import "ZXTabBarController.h"
#import "ZXNavigationController.h"
#import "HomeViewController.h"
#import "LVCLiveViewController.h"
#import "LVCMineViewController.h"
#import "LVCTabBar.h"
#import "LoginViewController.h"
#import "LVCHomePageViewController.h"
#import "LVCMineViewController.h"//

@interface ZXTabBarController ()<LVCTabBarDelegate>

@end

@implementation ZXTabBarController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    [[UITabBar appearance] setBarTintColor:[UIColor blackColorZX]];
    //取消tabBar的透明效果
    [UITabBar appearance].translucent = NO;
    
    [self setupItemTitleTextAttributes];
    [self createUI];
    [self setTabBar];
}

- (void)setupItemTitleTextAttributes
{
    UITabBarItem *item = [UITabBarItem appearance];
    //普通状态下的文字属性
    NSMutableDictionary *nomalAttrs = [NSMutableDictionary dictionary];
    nomalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14.0];
    nomalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
    [item setTitleTextAttributes:nomalAttrs forState:UIControlStateNormal];
    //选中状态下的文字属性
    NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
    selectedAttrs[NSForegroundColorAttributeName] = [UIColor redColor];
    [item setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
}

- (void)createUI
{
    [self setupOneChildViewController:[[ZXNavigationController alloc]initWithRootViewController:[[HomeViewController alloc]init]] title:@"" image:@"home page" selectedImage:@"home page-click on"];
    [self setupOneChildViewController:[[ZXNavigationController alloc]initWithRootViewController:[[HomeViewController alloc]init]] title:@"" image:@"live_default" selectedImage:@"live_focused"];
    [self setupOneChildViewController:[[ZXNavigationController alloc]initWithRootViewController:[[UIViewController alloc]init]] title:@"" image:@"news_default" selectedImage:@"news_focused"];
    [self setupOneChildViewController:[[ZXNavigationController alloc]initWithRootViewController:[[LVCMineViewController alloc]init]] title:@"" image:@"my" selectedImage:@"my-click on"];
}

- (void)setupOneChildViewController:(UIViewController *)vc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage
{
    if (![title isEqualToString:@""]) {
        vc.title = title;
    }
    
    if(image.length)//图片名有值
    {
        vc.tabBarItem.image = [UIImage imageNamed:image];
        vc.tabBarItem.selectedImage = [UIImage imageNamed:selectedImage];
    }
    [self addChildViewController:vc];
}

- (void)setTabBar
{
    LVCTabBar *tabbar = [[LVCTabBar alloc] init];
    [self setValue:tabbar forKeyPath:@"tabBar"];
    tabbar.LVCTabBarDelegate = self;
}


#pragma mark - LVCTabBarDelegate

-(void)liveBtnClick:(LVCTabBar *)tabBar
{
    
    // 判断用户是否登录
    if ([UserTools isLogin]) {
        
        LVCLiveViewController *liveCtrl = [[LVCLiveViewController alloc] init];
        ZXNavigationController *nav = [[ZXNavigationController alloc] initWithRootViewController:liveCtrl];
        [self presentViewController:nav animated:YES completion:nil];
        
    } else {
        
        LoginViewController *loginCtrl = [[LoginViewController alloc] init];
//        ZXNavigationController *navCtrl = [[ZXNavigationController alloc] initWithRootViewController:loginCtrl];
        UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:loginCtrl];
        loginCtrl.isModalButton = YES;
        [self presentViewController:navCtrl animated:YES completion:NULL];
        
    }
    
}

-(BOOL)shouldAutorotate{
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    
    return UIInterfaceOrientationMaskPortrait;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end