zoukankan      html  css  js  c++  java
  • 使用UITabBarController创建Tabbar获取tabBarItem的点击方法

    项目中有涉及到拨号键盘的弹出,想要在点击控制器的时候键盘回收,再点击下面的Tabbar实现键盘出现.由于正常情况下,当在当前界面的时候,点击下面的tabbar是不再相应的.这里就需要找到能执行tabbar点击事件的代理方法.

    第一步:需要在主控制器执行代理UITabBarControllerDelegate;

    第二步:执行代理方法:

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController.

    这样的话即使是一直在此界面,点击对应的tabbar也会走这一步,可以在此方法写自己想要执行的操作.

    举例代码如下:

    第一步:设置代理:

    @interface RootViewController ()<UITabBarControllerDelegate>

    第二步:设置UITabBarController.

     1 ViewController1 *hosterVC = [[ViewController1 alloc]init];
     2     UINavigationController *hosterNC = [[UINavigationController alloc]initWithRootViewController:hosterVC];
     3     hosterNC.navigationBar.translucent = NO;
     4     
     5     
     6     ViewController2 *menuListVC = [[ViewController2 alloc]init];
     7     UINavigationController *menuListNC = [[UINavigationController alloc]initWithRootViewController:menuListVC];
     8     menuListNC.navigationBar.translucent = NO;
     9     
    10     ViewController3 *healthMainVC = [[ViewController3 alloc]init];
    11     UINavigationController *healthMainNC = [[UINavigationController alloc]initWithRootViewController:healthMainVC];
    12     healthMainNC.navigationBar.translucent = NO;
    13     
    14     ViewController4 *zhiShiVC = [[ViewController4 alloc]init];
    15     UINavigationController *zhiShiNC = [[UINavigationController alloc]initWithRootViewController:zhiShiVC];
    16     zhiShiNC.navigationBar.translucent = NO;
    17     
    18     ViewController5 *sanCanVC = [[ViewController5 alloc]init];
    19     UINavigationController *sanCanNC = [[UINavigationController alloc]initWithRootViewController:sanCanVC];
    20     sanCanNC.navigationBar.translucent = NO;
    21     
    22     UITabBarController *rootVC = [[UITabBarController alloc]init];
    23     rootVC.viewControllers = @[menuListNC,healthMainNC,hosterNC,zhiShiNC,sanCanNC];
    24     
    25     UITabBarItem *item1 = [[UITabBarItem alloc]initWithTitle:@"菜单" image:[UIImage imageNamed:@"11@2x.png.png"] tag:101];
    26     UITabBarItem *item2 = [[UITabBarItem alloc]initWithTitle:@"养生" image:[UIImage imageNamed:@"12@2x.png.png"] tag:102];
    27     UITabBarItem *item3 = [[UITabBarItem alloc]initWithTitle:@"我的" image:[UIImage imageNamed:@"iconfont-wode-4.png"] tag:103];
    28     UITabBarItem *item4 = [[UITabBarItem alloc]initWithTitle:@"知识" image:[UIImage imageNamed:@"13@2x.png.png"] tag:104];
    29     UITabBarItem *item5 = [[UITabBarItem alloc]initWithTitle:@"三餐" image:[UIImage imageNamed:@"14@2x.png.png"] tag:105];
    30     menuListNC.tabBarItem = item1;
    31     healthMainNC.tabBarItem = item2;
    32     hosterNC.tabBarItem = item3;
    33     zhiShiNC.tabBarItem = item4;
    34     sanCanNC.tabBarItem = item5;
    35     
    36     self.window.rootViewController = rootVC;

    第三步:执行代理方法:

     1 #pragma  mark -- UITabBarDelegate
     2 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
     3 {
     4     
     5     if (tabBarController == self.tabbar)
     6     {
     7         
     8         if ([viewController.tabBarItem.title isEqualToString:@"菜单"])
     9         {
    10             NSLog(@"执行你想要点击此tabBarItem执行的操作");
    11 
    12         }
    13     }
    14 }

    转载请注明出处.

     

  • 相关阅读:
    深度优先搜索查找图中的所有连通分量
    广度优先搜索BFS-图
    深度优先搜索DFS-图
    稀疏向量算法
    zip函数
    函数(三)>>内置函数
    函数(二)
    面向对象1
    面向对象2
    函数(上)
  • 原文地址:https://www.cnblogs.com/aggie/p/5163484.html
Copyright © 2011-2022 走看看