使用UITabBarController建立Tabbar獲取tabBarItem的點擊方法

項目中有涉及到撥號鍵盤的彈出,想要在點擊控制器的時候鍵盤迴收,再點擊下面的Tabbar實現鍵盤出現.因爲正常狀況下,當在當前界面的時候,點擊下面的tabbar是再也不相應的.這裏就須要找到能執行tabbar點擊事件的代理方法.spa

第一步:須要在主控制器執行代理UITabBarControllerDelegate;代理

第二步:執行代理方法:code

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

這樣的話即便是一直在此界面,點擊對應的tabbar也會走這一步,能夠在此方法寫本身想要執行的操做.事件

舉例代碼以下:it

第一步:設置代理:io

@interface RootViewController ()<UITabBarControllerDelegate>

第二步:設置UITabBarController.class

 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;

第三步:執行代理方法:List

 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 }

轉載請註明出處.iconfont

相關文章
相關標籤/搜索