zoukankan      html  css  js  c++  java
  • 003-多视图控制器切换

    多视图控制器切换

    1.容器的概念

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

    • 容器的概念:负责展示一个或者多个ViewController,并管理这些 ViewController的生命周期

    • ⼤部分容器本身也是一个ViewController,被容器管理的控制器称为容器的⼦控制器(childViewController),⽽容器被称为父控制器(parentViewController)

    • 也有极少数容器不是ViewController,如UIPopoverController,继承于NSObject。注:UIPopoverController只能在iPad中使⽤


    2.容器的特点

    • 可以添加、移除或切换childViewController

    • 持有所有childViewController的实例(一般存在NSArray中)

    • 负责childViewController的视图⽣命周期方法的调用

    – viewWillAppear
    – viewDidAppear
    – viewWillDisaapper

    – viewDidDisappear – 旋转事件 


    3.iOS中视图控制器常见的几种切换方式 

    1. Tabbar选项卡
    – 以UITabbarController为容器,以平行的方式是管理子视图控制器

    • 2. Push推送
    – 以UINavigationController为容器,以的形式管理⼦子视图控制器

    • 3. Modal模态
    – 以模态窗⼜⼝的方式显示新的视图控制器,新视图控制器关闭前,⽤户⽆法与其他控制器进行交互

    模态窗⼝口的特点

    • 是单独使⽤用的窗⼜⼝口,不依赖与容器视图控制器
    • 通常⽤用于显⽰示相对独⽴立的窗⼜⼝口,例如:⽤用户登录、应⽤用程

    序设置或者帮助信息等
    • ⽤用户关闭模态窗⼜⼝口前,不能与上⼀一级视图进⾏行交互 

     


    4.UITabbarController,NavigationController

    1.UITabbarController常⽤用属性

    • title:标题
    • image:图像
    • badgeValue:右上⾓角的图标
    • viewControllers:所有⼦子视图控制器

    • 注意:tabBarController在实例化时会加载其中的所有子视图控制器 

    2.UINavigationController的工作原理

    • ⼯作原理: 以栈的形式管理⼦子视图控制器

    • UINavigationController的构成:

    – 上⾯面是UINavigationBar

    – 下⾯面是topViewController的 view,topViewController的 navigationItem属性决定了 UINavigationBar显⽰示的内容 

    UINavigationController中的常⽤用属性和⽅方法

    • 常⽤用属性

    1. childViewControllers ⼦子视图控制器

    2. title 标题

    3. backBarButtonItem 返回按钮

    4. leftBarButtonItem 左侧按钮

    5. rightBarButtonItem 右侧按钮

      • 常⽤用⽅方法

      • –  pushViewController 将指定视图控制器压⼊入栈顶

      • –  popViewControllerAnimated 将当前视图控制器从栈中弹出 

     


    5.segue对象的⽣生命周期

    • 创建⽬目标视图控制器

    • 创建segue对象并调⽤用它的 initWithIdentifier:source:destination:⽅方法

    • 其中的标⽰示符是在Interface Builder中指定的唯⼀一标⽰示字符串,另外两个参数分别对应箭头的起始控制器和⽬目标控制器

    • 调⽤用源视图控制器的prepareForSegue:sender:⽅方法 调⽤用segue对象的perform⽅方法,负责将⽬目标视图控制器推送到屏幕 释放segue对象 


    ps:多视图控制器跳转方法总结

    • Model
    – 打开:presentViewController:animated:completion: – 关闭:dismissViewControllerAnimated:completion:

    • Push
    – 打开:pushViewController:animated: – 关闭:popViewControllerAnimated:

    • Segue

    – 即可⽤用于Modal亦可⽤用于Push

    – 如果在打开⺫⽬目标控制器前需要做额外的处理,可以使用performSegueWithIdentifier:sender:⽅方法 

  • 相关阅读:
    湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问
    【转】关于写书
    【转】真相
    【转】成都的雾霾
    【转】iPhone X
    【转】网络用语
    【转】AlphaGo Zero 和强人工智能
    【转】理性的力量
    【转】旅行的智慧
    【转】我为什么爱猫
  • 原文地址:https://www.cnblogs.com/lszwhb/p/3892909.html
Copyright © 2011-2022 走看看