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事件。
  • 相关阅读:
    markdown with vim
    递归
    类 sizeof
    cppcheck工具
    c++ explicit的含义和用法
    pca主成分分析
    string的使用
    linux的shell进化简史
    adb shell 无法启动 (insufficient permissions for device)
    c++ 四种转换的意思
  • 原文地址:https://www.cnblogs.com/HelloGreen/p/12735178.html
Copyright © 2011-2022 走看看