zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    树莓派成长日记03
    一些特殊文字的过滤Private Use Area:E000F8FF
    MongoDb 相关
    SQL 相关技术点收集贴
    正则表达式提取文本的日期
    MVC 相关技术点收集贴
    使用 json2.js注意点
    C#画图 GDI+
    PHP模拟POST,验证页面的返回状态
    EF-Entity Framework 相关技术点收集贴
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/10674851.html
Copyright © 2011-2022 走看看