首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何确定哪个tabbar索引是我的视图控制器

在iOS开发中,可以通过以下方法确定当前的TabBar索引是哪个视图控制器:

  1. 使用UITabBarControllerDelegate方法:
    • 首先,确保你的视图控制器类遵循UITabBarControllerDelegate协议。
    • 在视图控制器类中,实现以下方法:func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { if let index = tabBarController.viewControllers?.firstIndex(of: viewController) { print("当前TabBar索引是:\(index)") } }
    • 该方法会在用户选择不同的TabBar项时被调用,通过获取选中的视图控制器并在视图控制器数组中查找其索引,可以确定当前的TabBar索引。
  2. 使用UITabBarController的selectedIndex属性:
    • UITabBarController有一个selectedIndex属性,可以直接获取当前选中的TabBar索引。
    • 在需要获取TabBar索引的地方,可以使用以下代码:if let tabBarController = self.tabBarController { let index = tabBarController.selectedIndex print("当前TabBar索引是:\(index)") }
    • 通过访问tabBarController的selectedIndex属性,可以获取当前选中的TabBar索引。

以上两种方法都可以用来确定当前的TabBar索引是哪个视图控制器。根据具体的需求和代码结构,选择适合的方法即可。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发中标签控制器使用——UITabBarController

iOS开发中标签控制器使用——UITabBarController 一、引言         与导航控制器相类似,标签控制器也是用于管理视图控制器一个UI控件,在其内部封装了一个标签栏,与导航不同...,导航管理方式纵向,采用push与pop切换控制器,标签管理横向,通过标签切换来改变控制器,一般我们习惯将tabBar作为应用程序视图控制器,在其中添加导航,导航中在对ViewController...二、创建一个标签控制器         通过如下步骤,我们可以很简便创建一个TabBarController: UITabBarController * tabBar= [[UITabBarController...通过点击下面的标签按钮,可以很方便切换控制器。如果我们控制器数超过4个,系统会被我们创建一个more导航,并且可以通过系统自带编辑来调整控制器顺序,如下: ? ?...@property(nonatomic, readonly) UINavigationController *moreNavigationController;  //这个属性设置可以进行自定义排列顺序视图控制器

1.5K20

iOS_自定义UITabBarController标签视图控制器

; @end 然后开始写自己想要东西了,在viewDidLoad中: (1)删除继承父类而来tabBar,自定义自己想要视图,其frame为原来tabBarframe。...clickBtn:实现按钮和其下面标题 选择和未选择状态切换;也需要实现视图跳转: #pragma mark -- 自定义tabBar按钮点击事件 -(void)clickBtn:(UIButton...titleNow.textColor = [UIColor colorWithRed:0.804 green:0.325 blue:0.227 alpha:1.000]; //跳转相应视图控制器...self.selectedIndex = sender.tag - 1; } 然后就基本实现了一个视图控制器功能了,自己还有什么需求可以往里加,使用就跟视图标签视图一样使用就行,只是这里按钮图片都是在类里就赋值好了...; 这是自定义tabBarController下载地址,需要可以下下来参考参考: http://download.csdn.net/detail/margaret_mo/9451753

53830

iOS项目——自定义UITabBar与布局

在上一篇文章iOS项目——基本框架搭建中,我们详细说明了如何对TabBarItem图片属性以及文字属性进行一些自定义配置。...主要缺点就是需要先申请一个位置和控制器来占位比较浪费,而且这种也只适用于各控件大小均匀情况,当我们需求中每个TabBarItem规格和尺寸不一样时,我们就无法使用这种方案实现。   ...根本原因就是TabBarItem加载到TabBar在 viewDidLoad 之后执行,后面在第2部分中有验证这一点, 在上一文章我们就说过,tabbarcontroller在一创建控制器时候就进行加载...alloc] init] title:@"" image:@"tabBar_me_icon" selectedImage:@"tabBar_me_click_icon"]; } /** * 为什么要在...alloc] init] forKeyPath:@"tabBar"]; } @end   下面的代码我们自定义TabBar.m文件主要内容,主要是重写其 layoutSubviews 方法,在该方法中我们将四个按钮大小和布局进行了调整

2.9K90

iOS6中横屏处理方法 原

注意: 如果你们项目中RootViewController导航,你会发现,你在Push出来视图中添加刚才代码并没有起作用,原因导航,并没有进行设置,我们创建一个文件,继承于NavigationController...];; } 我们还需要做一些处理,经过测试,导航必须在pop后才会重新调用这些函数,所以我方法这样做:弹出一个中间控制器后再POP回来 @implementation ViewController2...[self.navigationController popViewControllerAnimated:YES]; } 这样做,我们就可以自由控制每个视图控制器方向了。...同理,如果根视图控制器tabBar,则我们需要在tabBar中做操作。...如果我们大多是的视图控制器都是一个方向,只有偶尔几个会不同,这时候,我们其实可以采取presentationController方式,然后直接在弹出控制器中写那两个方法即可。

1.1K60

Swift-MVVM 简单演练(一)

有一些系统样式本身处理不好,比如侧滑返回时候,系统会出现渐溶效果,这种用户体验不太好 需要解决push出一个控制器后,底部TabBar隐藏/显示问题 Push 出控制器后,底部 TabBar...,突然发现swift在这里比objective-c友好很多,如果你给参数设置了一个默认值。...reloadData() } } ---- 未登录视图显示(访客视图) 现实中经常会遇到一些临时增加需求,比如登录后显示一种视图,未登录又显示另外一种视图,如果你公司面向公司内部APP...在基类控制器setupUI(设置界面)方法里面,我们直接创建了tableView,那么我们如果有一个标记,能根据这个标记来选择创建普通视图,还是创建访客视图。就可以很好解决此类问题了。...则可以直接通过addTarget方式为该视图按钮添加监听方法 这样做代价耦合度高,控制器视图绑定在一起,但是省略部分冗余代码 ---- 调整未登录时导航按钮 如果单纯在setupVistorView

10.2K51

Swift开发:自定义标签栏UITabBarController (Swift项目开始第一步)

在总结了一些基本用法之后,尝试使用Swift自定义UITabBarController和UITabbar,开启这Siwft项目的关键一步,首先展示一下效果图: ?...第三步:创建视图控制器 自定义导航控制器视图控制器父类,并且创建三个继承于BaseViewController视图控制器(因为没有过多复杂操作,这里省略代码),为之后创建标签控制器做准备。...(){ //1.获取系统自带标签栏视图frame,并将其设置为隐藏 let tabBarRect = self.tabBar.frame; self.tabBar.isHidden...makeKeyAndVisible() //设置Window视图控制器为自定义标签栏 self.window?....在项目前期我们以自定义方式来创建标签栏,这也是为了后期应对更加复杂需求做伏笔,比如增加新控制器我们只需要修改plist配置文件属性创建相应视图控制器就可以,这样就避免了修改大量代码。

3.9K70

【IOS开发基础系列】Navigation页面导航专题

),步骤如下:     1.在视图控制器头文件中实现UINavigationControllerDelegate,例如: @interface PicturePreviewViewController...navigationController willShowViewController: (UIViewController*) viewController animated: (BOOL)animated{     //如果进入当前视图控制器...与导航条混用时,TabBarItem设置在NavigationController中,而不是内容Controller中,切记!!!...否则会导致页面切换时选中状态不准确         TabBar与导航条混用时,TabBarItem设置在NavigationController中,而不是内容Controller中,切记!!!...2.5.8 Tabbar显示与隐藏 Tabbar隐藏函数,其实只在Nav Push之前调用时起作用 //隐藏Tabbar [viewController setHidesBottomBarWhenPushed

32920

iOS 自定义 ViewController 过渡动画

就想着自己也来玩一下,顺便把之前没写成 Custom ViewController Transition 自定义视图控制器过渡文章也一起搞定了。...这里只以这个动画实现为主线,更系统介绍请移步上面的相关链接。 视图控制器过渡,就是指图片里那种 ViewController 过渡效果。(好废话。。。)...有两个方法需要实现 // 这个方法负责做真正动画,输入参数过渡上下文,从哪个VC过渡到哪个VC这些东西都可以从它得到。...,主要想法设定一个 CAShapeLayer 作为目标 VC 遮罩。...as [UIViewController], toViewController) // 计算出点击tab位置,作为动画圆心 let tabBarFrame = tabBarController.tabBar.frame

1.3K30

iOS开发笔记(十)— Xcode、UITabbar、特殊机型问题分析

【问题分析】通过多个文件尝试,发现并非完全不能索引头文件,而是只能索引和当前文件在同级目录头文件; 有点猜测Xcode10.1原因,但是在升级完半年多时间里,都没有出现过索引。...【问题分析】 首先确定,这个编译失败实际上一个warning,只是因为工程设置了把warning识别为error; 其次.m文件可以正常编译,并且.m文件也是开启了warning as error...]]; 问题2、tabbar背景色问题 【问题表现】设置tabbar背景色0xFFFFFF白色,但是实际效果确是灰白色,并不是全白色; 【问题分析】tabbar默认透明(属性translucent...),会对tabbar下面的视图进行高斯模糊,然后再与背景色混合。...; } 总结 日常开发遇到问题,如果解决过程超过10分钟,都会记录下来。

1.2K20

iOS初步集成极光推送后你还要做这些事

● 你测试包(真机调试)收到通知后,怎么确定上架包也能收到消息? 今天小伙伴问我Badge怎么弄,这边徽章个数从服务器请求,使用WZLBadge这个三方绘制。...另外,个人遇到一个崩溃问题 觉得有必要让大家看下。 在上面抛出了一些问题,基本都是我们集成极光后前端需要处理事情,下面一个个解决这些问题。...个人没有总结太多,肯定有缺失,这里只是给不知道伙伴列举一些常见。若有误,请指出。 ○ 当收到消息时,app在前台如何处理?如何跳转?...○未启动时受到消息如何处理?如何跳转 这种情况最不容易找到,因为当你应用未启动,点击了通知栏,它没有调用任何极光代理,这时候需要我们去启动函数进行判断。...有点需要说明这里直接取content这个key。这边让后台传这个,当然也有后台会放extras这个字段json数据,后面会有代码详细说这个解析。 ○怎么给指定用户发送消息?

2.8K50

iOS项目——基本框架搭建

: 方法添加子视图,也可以实现添加到tabBar功能,但是这种方法对于barItem个数 > 5时候,只会显示前五个,剩下不会出现时出来,也没有【more】按钮可以选择。...alloc] init] title:@"" image:@"tabBar_me_icon" selectedImage:@"tabBar_me_click_icon"]; } /** * 初始化一个子控制器...viewController都是懒加载,即都是在即将显示出来时才加载viewdidLoad,但是只有 tabbarcontroller在一创建控制器时候就进行加载viewdidLoad。...具体如何创建和配置PCH文件详情可以参见:ios中pch文件创建与配置   下面在编写PCH文件需要注意一些情况: #ifndef PrefixHeader_pch #define PrefixHeader_pch...注意点:Build Setting中配置名字不能全部小写字母,如果宏名字全部小写, 会出现以下错误 ?

1.7K80

iOS导航栏切换界面时隐藏和显示

本文只讲最简单实现方式,在单纯UINavigationController下表现ok,但是如果同时还涉及到UITabbarController,就会有一些瑕疵,下面要实现效果,可以观察一下瑕疵在哪...代理中去做隐藏,并且分别是有动画和没动画,但是因为 Tabbar所包含其实是 UINavigationController ,所以在点击 Tabbar 切换界面时两个代理方法都会被调用,无解啊。...这个方法直接隐藏了整个导航栏,所以如果要保存导航栏一些返回按钮以及其他自定义按钮,就需要自己在界面上去模拟添加,如果不想这么麻烦,也可以不隐藏导航栏,而是将导航栏背景视图设为透明: [...结 上面的方法可以在只有导航栏控制器时比较好操作,虽然不能做到像QQ那么好,但也能用,但如果有Tabbar存在,就会有问题。那如何做到QQ那样效果呢?...这里有一篇文章实现了:传送门:导航栏平滑显示和隐藏 - 个人页自我修养(1) ,不过作者使用swift实现,用到了extension,其实也就是OC下category,之后再研究一下OC下实现好了

3.8K30

什么MVC ?

记得第一次面试phper(php来说可以快速上手另一web开发语言),人家问我MVC,只知道m就是model,v就是view,c就是Controller,具体把其它认识一无所知,结果被问得一问三不知...MVC如何工作 MVC一个设计模式,它强制性使应用程序输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图控制器。它们各自处理自己任务。...如何处理应用程序界面变得越来越有挑战性。MVC一个大好处它能为你应用程序处理很多不同视图。...它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定哪个视图来显示模型处理返回数据。...现在我们总结MVC处理过程,首先控制器接收用户请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户请求并返回数据,最后控制器用相应视图格式化模型返回数据,并通过表示层呈现给用户

30430
领券