使用UITabBarController创建Tabbar获取tabBarItem的点击方法

摘要:
该项目涉及拨号键盘的弹出。您希望在单击控制器时回收键盘,然后单击下面的选项卡以启用键盘显示。因为通常情况下,当您在当前界面中单击下面的选项卡时,它不再合适。在这里,您需要找到一个可以执行选项卡单击事件的代理方法步骤1:代理UITabBarControllerDelegate需要在主控制器上执行;步骤2:执行代理方法:-(void)tabBarController:(UITabBarCo

项目中有涉及到拨号键盘的弹出,想要在点击控制器的时候键盘回收,再点击下面的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 }

转载请注明出处.

免责声明:文章转载自《使用UITabBarController创建Tabbar获取tabBarItem的点击方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇树状数组与线段树(一)Unity开发-你必须知道的优化建议下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

如何在Java应用中提交Spark任务?

我丈夫是一个用户定义的ID,作为参数传递给Spark应用程序;Spark初始化后,可以通过SparkContext_ ID和URL通过驱动程序连接到数据库,新版本关联关系的插入归因于互联网时代的信息爆炸。我看到了群友的聊天,了解了SparkLauncher。经过调查,我发现它可以基于Java代码自动提交Spark任务。因为SparkLauncher的类引用了...

JRebel 6 破解版及使用方法

2.解压下载的jrebel6.0.0-crack.zip、jrebel6.0 jar包和破解文件。假设文件在D:/jrebel步骤:1中解压缩。eclipse下载jrebe插件,可以在市场上下载。2.打开eclipse的窗口首选项jrebel,打开优势选项卡,并将jar包的路径指向D:/jrebel/jrebel.jar。用CMD打开DOS窗口,输入cd/d...

JS获取当前时间

如果有更好的方法,请提出建议。进一步解释如下:varmyDate=newDate();我的日期。getYear();//获取当前年份(2位数)myDate getFullYear();//获取完整的年份(4位数,1970-???=0)||);}//----------------------------------------------//日期格式//格式...

[笔记]manjaro kde主题&amp;amp;手动安装主题

安装manjaroKDE主题。首先,安装manjaro主题,有两种方法:“系统设置”-“全局主题”-“获取新的全局主题”,您还可以在“外观”中获得“等离子样式、应用程序样式、颜色等”的新全局主题“.通过manjarokdestore下载主题,然后将主题导入系统。但是,由于某些原因,方法1在我的计算机上不可行。加载速度非常慢,下载速度非常慢。据说可以通过pro...

获取用户当前位置信息的两种方法——H5、微信

在之前调用百度地图API的总结中,我使用H5获取了当前位置信息。事实上,微信还提供了一种获取用户地理位置的方法。现在我们将发布这两种方法,并根据情况选择使用它们。varspeed=响应。速度;//速度,单位:米/秒varaccuracy=res精度;//位置精度}});3、 从地理位置和地图显示中获得的经度和纬度可以使用百度地图或高德地图显示,也可以在微信内...

关于异常STATUS_IN_PAGE_ERROR(0xC0000006)

表示0x%p处的指令引用了位于0x%p的内存。由于0x%x的I/O错误状态,未将所需数据放入内存。设备如果读取出错,驱动程序可以返回此异常。其定义如下:////MessageId:STATUS_IN_PAGE_ERROR////MessageText:////Theinstructionat0x%preferencedmemoryat0x%p.Therequ...