• iOS基础


    一、Container

    一个iOSapp很少只由一个ViewController组成,除非这个app极其简单。当app中有多个ViewController的时候,我们就需要对这些ViewController进行管理

    容器:负责展示一个或者多个ViewController,并管理这些View Controller的视图生命周期

    大部分容器本身也是一个ViewController, 被容器管理的这些控制器可以称为容器的子控制器(ChildViewController),而容器可以被称为父控制器(parentViewController)

    也有极少数容器不是ViewController,比如UIPopoverController,其继承于NSObject

    常用的ContainerUITabbarController、UINavigationController

    二、Container的特征

    可以添加ChildViewController, 移除ChildViewController,切换ChildViewController的显示,

    持有所有ChildViewController的实例(一般存在NSArray)

    负责ChildViewController的生命周期方法的调用

    (viewWillAppear,viewDidAppear,viewWillDisaapper,viewDidDisappear),以及旋转事件的传递

    三、UITabBarController

    一个UITabBarControllerview由两部分组成

    上面部分用来容纳子控制器的view

    下面部分是一个UITabBar对象,会根据子控制器的tabBarItem属性生成相应的图标和标题

    四、UITabBarController添加子控制器

    通过设置viewControllers属性或者addChildViewController方法可以添加子控制器

    NSArray *viewControllers

    - (void)addChildViewController:(UIViewController *)childController

    五、UITabBarItemUITabbar

    UIViewControllertabBarItem属性决定了UITabBar显示的内容

    使用系统自带的UITabBarItem样式:

    controller.tabBarItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1] autorelease];

    自己设置UITabBarItem的标题和图片:

    controller.tabBarItem.title = @More

    // controller.title也可以用于设置标题

    controller.tabBarItem.image = [UIImage imageNamed:@more];

    设置UITabBarItem右上角的红色数字

    controller.tabBarItem.badgeValue = @10;

    六、UINavigationController

    UINavigationController也是容器的一种,负责子控制器之间的跳转

    UINavigationController以栈的形式保存子控制器,这里的栈其实是个NSArray对象,只有位于栈顶的子控制器的view才是可见的

    初始化UINavigationController时,需要传入一个UIViewController实例作为根控制器,这个根控制器永远处于栈底(如果栈中只有一个对象,那么根控制器也处于栈顶)

    将某个UIViewController压入栈时,控制器的视图会从窗口右侧滑入;出栈时,栈顶的控制器会被移除,其下的控制器的视图会从窗口左侧滑入

    常用属性:

    UIViewController *topViewController 处于栈顶的子控制器

    NSArray *viewControllers 栈,存放着所有的子控制器

    七、UINavigationController结构

    UINavigationControllerview包括了两大部分:

    上面是UINavigationBar

    下面是topViewControllerviewtopViewControllernavigationItem属性决定了UINavigationBar显示的内容

    八、UINavigationBar的标题

    注意:UINavigationItem并不是UIView的子类

    九、UINavigationItem

    除了titleUINavigationItem还有一些属性能够影响UINavigationBar的显示内容

    UIBarButtonItem *backBarButtonItem 左上角的返回按钮

    UIView *titleView   中间的标题视图

    UIBarButtonItem *leftBarButtonItem  左上角的视图

    UIBarButtonItem *rightBarButtonItem  右上角的视图

    十、UINavigationBarUINavigationItem

    UINavigationController添加子控制器

    UINavigationControllerpushViewController:animated:方法可以将一个控制器压入栈中

    子控制器都有个navigationController属性,可以获取当前的UINavigationController对象

    假如从子控制器c1跳转到子控制器c2,可以这样做:

    [c1.navigationController pushViewController:c2 animated:YES];

  • 相关阅读:
    点聚weboffice插件自定义菜单
    Delphi程序带参数运行
    64位系统下注册32位dll文件
    64位进程调用32位dll的解决方法
    memcached启动脚本以及telnet测试
    LSM树由来、设计思想以及应用到HBase的索引
    B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
    java读取utf8配置文件乱码
    设置某个ip对mysql服务器有权限,以及mysql定时备份
    《HBase实战》
  • 原文地址:https://www.cnblogs.com/monicaios/p/3509965.html
Copyright © 2020-2023  润新知