ZXTabBarController.m
4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//
// 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