zoukankan      html  css  js  c++  java
  • 复习知识点:TabBarViewController(微信框架)

    TabBarViewController:标签视图控制器

    application设置

    创建四个视图控制器

    引入视图控制器头文件

    1 #import "AppDelegate.h"
    2 
    3 #import "RootTableViewController.h"
    4 #import "FirstTableViewController.h"
    5 #import "SecondTableViewController.h"
    6 #import "ThirdTableViewController.h"

    在application里设置TabBarViewController

    设置选中图片有很多种方式,一般会用不进行渲染的方式

     1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     2     // Override point for customization after application launch.
     3     // 第一步:创建window
     4     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
     5     self.window.backgroundColor = [UIColor whiteColor];
     6     [self.window makeKeyAndVisible];
     7     
     8     // 第二步:创建UITabBarController对象
     9     UITabBarController *mainTab = [[UITabBarController alloc] init];
    10     
    11     // 第三步:设置window的根视图控制器
    12     self.window.rootViewController = mainTab;
    13     
    14     // 第四步:设置UITabBarController的控制器数组
    15     // 创建导航控制器并指定导航控制器的根视图控制器
    16     UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] init]];
    17     // 设置导航控制器的TabBarItem
    18     // UIImageRenderingModeAlwaysOriginal 设置选中图片保留原有的样式,不进行渲染
    19     nav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"微信" image:[[UIImage imageNamed:@"tabbar_mainframe@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"tabbar_mainframeHL@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    20     
    21     UINavigationController *fnav = [[UINavigationController alloc] initWithRootViewController:[[FirstTableViewController alloc] init]];
    22     UIImage *image1 = [[UIImage imageNamed:@"tabbar_contacts@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    23     // 设置选中图片保留原有的样式,不进行渲染
    24     UIImage *image2 = [[UIImage imageNamed:@"tabbar_contactsHL@3x.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    25     fnav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"通讯录" image:image1 selectedImage:image2];
    26     
    27     UINavigationController *snvc = [[UINavigationController alloc] initWithRootViewController:[[SecondTableViewController alloc] init]];
    28     snvc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"发现" image:[UIImage imageNamed:@"tabbar_discover@3x"] tag:102];
    29     
    30     UINavigationController *tnvc = [[UINavigationController alloc] initWithRootViewController:[[ThirdTableViewController alloc] init]];
    31     tnvc.tabBarItem.title = @"";
    32     tnvc.tabBarItem.image = [UIImage imageNamed:@"tabbar_meHL@3x"];
    33     
    34     // 把导航视图控制器添加到标签视图控制器上
    35     // 添加单一的控制器用:addChildViewController即可
    36 //    [mainTab addChildViewController:nav];
    37 //    [mainTab addChildViewController:fnav];
    38 //    [mainTab addChildViewController:snvc];
    39 //    [mainTab addChildViewController:tnvc];
    40     // 将导航控制器对象添加到数组中
    41     // 数组是有序的,按顺序管理
    42     mainTab.viewControllers = @[nav,fnav,snvc,tnvc];
    43     
    44     // 设置进入应用选中第几个
    45     mainTab.selectedIndex = 1;
    46     
    47     // TabBar 的属性
    48     // 设置选中控件的颜色
    49     mainTab.tabBar.tintColor = [UIColor greenColor];
    50     
    51     // 设置tabBar的属性
    52     mainTab.tabBar.tintColor = [UIColor colorWithRed:15 / 255.0 green:178 / 255.0 blue:0 alpha:1];
    53     
    54     // 半透明效果
    55     //    mainTab.tabBar.translucent = NO;
    56     
    57     // 设置tabBar的颜色
    58     //    mainTab.tabBar.barTintColor = [UIColor blueColor];
    59     
    60     // 改变TabBar的位置
    61     //    [fnav.tabBarItem setTitlePositionAdjustment:UIOffsetMake(50, 10)];
    62 
    63 #pragma mark UIApperance - 设置全部item的属性
    64     // 导航栏的背景颜色
    65     [UINavigationBar appearance].barTintColor = [UIColor lightGrayColor];
    66     // 导航栏字体的颜色
    67     [UINavigationBar appearance].barStyle = UIBarStyleBlack;
    68     // 导航栏添加item的颜色
    69     [UINavigationBar appearance].tintColor = [UIColor orangeColor];
    70     
    71 
    72     // 设置提示
    73     // 汉字显示四个
    74     // 数字显示八个
    75     snvc.tabBarItem.badgeValue = @"999999+";
    76     
    77     // 设置代理
    78     mainTab.delegate = self;
    79 
    80     return YES;
    81 }

    实现清空badgeValue的方法

    1 // 实现方法 , 点击后清空badgeValue
    2 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    3 
    4     viewController.tabBarItem.badgeValue = nil;
    5 
    6 }

    QQ多了一个统一按钮

     // 添加统一的左按钮
        self.tabBarController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leftBarButtonItemAction:)];

  • 相关阅读:
    ASP.NET(C#)——唯一订单号
    Oracle——备份与还原
    ASP.NET(C#)——日期函数
    数据安全——数据安全标准
    文件内容的追加
    文件的读取
    创建文件,写文件
    遍历文件改进
    遍历文件夹
    递归方法求前n项和
  • 原文地址:https://www.cnblogs.com/crazygeek/p/5559204.html
Copyright © 2011-2022 走看看