zoukankan      html  css  js  c++  java
  • 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事件。
  • 相关阅读:
    “不裁员”才是公司度过艰难时期的聪明选择
    oracle服务端与客户端字符集不同导致中文乱码解决方案
    [转]ABAP数据库操作系列(5)
    [转]ABAP数据库操作系列(2)
    [转]整理的函数
    [转]ABAP数据库操作系列(6)
    [转]ABAP数据库操作系列(7)
    [转]Authoritycheck
    [转]ABAP Program to Display SAP Icons
    [转]ABAP数据库操作系列(3)
  • 原文地址:https://www.cnblogs.com/HelloGreen/p/12735178.html
Copyright © 2011-2022 走看看