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
//
// RootTabBarController.m
// redstar
//
// Created by admin on 15/11/3.
// Copyright © 2015年 ZWF. All rights reserved.
//
#import "RootTabBarController.h"
#import "HomeViewController.h"
#import "AnnounceViewController.h"
#import "FunctionViewController.h"
#import "MineViewController.h"
#import <AFNetworking.h>
#import "CommonFunc.h"
@interface RootTabBarController ()
@end
@implementation RootTabBarController
- (void)viewDidLoad
{
[self setupTabbar];
self.delegate = self;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.parentViewController.tabBarController.tabBar.hidden = YES;
}
- (void)viewDidDisappear:(BOOL)animated
{
self.parentViewController.tabBarController.tabBar.hidden = YES;
}
//
- (void)setupTabbar
{
// 跳转到tabbarController
HomeViewController *home = (HomeViewController *)[self setUpOneChildViewController:[[HomeViewController alloc] init] title:@"首页" imageName:@"home_unchecked" selImageName:@"home_checked"];
UINavigationController *homeNav = [[UINavigationController alloc] initWithRootViewController:home];
[homeNav.navigationBar setBarTintColor:kNavigationBarColor];
[homeNav.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName,nil]];
FunctionViewController *function = (FunctionViewController *)[self setUpOneChildViewController:[[FunctionViewController alloc] init] title:@"功能" imageName:@"function_uncheck" selImageName:@"function_check"];
UINavigationController *functionNav = [[UINavigationController alloc] initWithRootViewController:function];
[functionNav.navigationBar setBarTintColor:kNavigationBarColor];
[functionNav.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName,nil]];
AnnounceViewController *announce = (AnnounceViewController *)[self setUpOneChildViewController:[[AnnounceViewController alloc] init] title:@"公告" imageName:@"notice_unchecked" selImageName:@"notice_checked"];
announce.tabBarItem.tag = 3928;
MineViewController *mine = (MineViewController *)[self setUpOneChildViewController:[[MineViewController alloc] init] title:@"我的" imageName:@"aboutme_unchecked" selImageName:@"aboutme_checke"];
mine.tabBarItem.tag = 18274;
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
kNavigationBarColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateSelected];
self.viewControllers = @[homeNav, functionNav, announce, mine];
}
// 添加一个控制器的属性
- (UIViewController *)setUpOneChildViewController:(UIViewController *)vc title:(NSString *)title imageName:(NSString *)imageName selImageName:(NSString *)selImageName
{
// 添加TabBar按钮的图片文字
vc.title = title;
vc.tabBarItem.image = [UIImage imageNamed:imageName];
UIImage *selImage = [UIImage imageNamed:selImageName];
selImage = [selImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
vc.tabBarItem.selectedImage = selImage;
return vc;
}
#pragma mark - UITabBarController Delegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if (viewController.tabBarItem.tag == 18274) {
MineViewController *vc = (MineViewController *)[self setUpOneChildViewController:[[MineViewController alloc] init] title:@"我的" imageName:@"aboutme_unchecked" selImageName:@"aboutme_checke"];
vc.hidesBottomBarWhenPushed = YES;
[((UINavigationController *)tabBarController.selectedViewController) pushViewController:vc animated:YES];
return NO;
} else if (viewController.tabBarItem.tag == 3928) {
AnnounceViewController *announce = (AnnounceViewController *)[self setUpOneChildViewController:[[AnnounceViewController alloc] init] title:@"公告" imageName:@"notice_unchecked" selImageName:@"notice_checked"];
announce.hidesBottomBarWhenPushed = YES;
[((UINavigationController *)tabBarController.selectedViewController) pushViewController:announce animated:YES];
return NO;
}
return YES;
}
@end