iOS 自定义一个常规的TabBar

#import "WJWBaseTabBarViewController.h"
#import "WJWTabBarButton.h"
#import "WJWMainViewController.h"
#import "WJWDiscoverViewController.h"
#import "WJWMyViewController.h"


@interface WJWBaseTabBarViewController ()
@property (nonatomic, weak) UIButton *selectedBtn;

@end

@implementation WJWBaseTabBarViewController

+ (void)load {
    UITabBarItem *item = [UITabBarItem appearanceWhenContainedInInstancesOfClasses:@[[self class]]];
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor blackColor];
    [item setTitleTextAttributes:attrs forState:UIControlStateSelected];
    
    NSMutableDictionary *attrsFontNormal = [NSMutableDictionary dictionary];
    attrsFontNormal[NSFontAttributeName] = [UIFont systemFontOfSize:13];
    [item setTitleTextAttributes:attrs forState:UIControlStateSelected];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self configAllSunTabs];
    [self setAllTabBarItems];
}


- (void)configAllSunTabs {
    WJWMainViewController *mainVC = [[WJWMainViewController alloc] init];
    UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:mainVC];
    [self addChildViewController:nav1];
    
    WJWDiscoverViewController *disVC = [[WJWDiscoverViewController alloc] init];
    UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:disVC];
    [self addChildViewController:nav2];
    
    WJWMyViewController *myVC = [[WJWMyViewController alloc] init];
    UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:myVC];
    [self addChildViewController:nav3];
    
}

- (void)setAllTabBarItems {
    NSArray *normalBtnArray = @[@"home_normal",@"faxian_normal",@"shequ_normal",@"haoyou_normal",@"wode_normal"];
    NSArray *highlightBtnArray = @[@"home_highlight",@"faxian_highlight",@"shequ_highlight",@"haoyou_highlight",@"wode_highlight"];
    
    NSArray *titleArray = @[@"首页",@"发现",@"社区",@"好友",@"我的"];
    
    
    UINavigationController *nav1 = self.childViewControllers[0];
    nav1.tabBarItem.title = titleArray[0];
    nav1.tabBarItem.image = [UIImage imageNamed:normalBtnArray[0]];
    nav1.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[0]];
    
    UINavigationController *nav2 = self.childViewControllers[1];
    nav2.tabBarItem.title = titleArray[1];
    nav2.tabBarItem.image = [UIImage imageNamed:normalBtnArray[1]];
    nav2.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[1]];

    
    UINavigationController *nav3 = self.childViewControllers[2];
    nav3.tabBarItem.title = titleArray[4];
    nav3.tabBarItem.image = [UIImage imageNamed:normalBtnArray[4]];
    nav3.tabBarItem.selectedImage = [UIImage imageNamed:highlightBtnArray[4]];
}
    

- (void)viewDidLayoutSubviews {
    
}


/*
#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

AppDelegete.m 中把tabBarController设置为 window的根控制器。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    WJWBaseTabBarViewController *baseTabBar = [[WJWBaseTabBarViewController alloc] init];
    
    self.window.rootViewController = baseTabBar;
    [self.window makeKeyAndVisible];
    return YES;
}

转载于:https://www.cnblogs.com/wjw-blog/p/10674851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值