項目中有涉及到撥號鍵盤的彈出,想要在點擊控制器的時候鍵盤迴收,再點擊下面的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