UITabBarController的使用

Posted hellogreen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITabBarController的使用相关的知识,希望对你有一定的参考价值。

更新记录

时间 版本修改
2020年4月19日 初版

前言

  • ios中许多app的主界面,都是由一个tabBar,控制着多个主界面的。比如微信中,主界面有4个TabBarItem,分别对应“聊天”,“通讯录”,“发现”,“我的”。
  • 对于iOS的app,很大可能app的rootViewController就是一个UITabBarController的自定义子类。
  • 所以很有可能对于整个app的相关业务的处理,都会放在这样一个类中。

UITabBarController的相关知识点

UITabBarController

  • 该类有一个属性:
    • @property(nullable, nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers;
    • 初始化该属性后,UITabBarController中的tabBarItem即对应着这个VC数组。
  • 默认选中数组的第0项。
  • 点击过的tabBarItem,其对应的VC并不会被加载。
  • 点击过的tabBarItem, 其对应的VC常驻内存,不会销毁。

UITabBarControllerItem

  • UIViewController有一个分类,叫做UIViewController (UITabBarControllerItem)
  • 所以每一个继承于UIViewController(在iOS中也是潜规则了,自定义VC必定继承于UIViewController)的自定义VC类,都具备成为UITabBarController所持有的TabBarItem的能力。
    • 还想起来《Objective-C基础教程》中提到的,分类的好处吗?其中之一就是可以把类的不同代码,分散到不同的范围中。在该例子中,就可以把UIViewController中关于Tab使用的代码,专门放到UITabBarController.h这个文件中进行管理。
  • 后续就可以更改VC的UITabBarItem属性,来对该VC对应的tabBarItem的行为(比如tabBarItem的标题,icon等)

UITabBarControllerDelegate

  • 主要用于自定义处理某些响应时间。例如选择tabBar事件。

以上是关于UITabBarController的使用的主要内容,如果未能解决你的问题,请参考以下文章

iOS边练边学--UITabBarController的简单使用

如何使用 Swift 从 UITabBarController 的子类触发动作

UITabbarController 动态更改项目

如何使用Swift从UITabBarController的子类中触发动作

如何防止 UITabBarController 更新子视图?

从ios中的UITabBarController中删除标签栏的安全方法