zoukankan      html  css  js  c++  java
  • iOS:iOS中的多控制器管理

    iOS中的控制器有三种创建方式:

    1.通过storyboard创建
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Apply" bundle:nil];
    SchemeViewController *schemeVC = [storyboard instantiateViewControllerWithIdentifier:@"SchemeViewController"];
    2.指定xib文件来创建
    YFViewController *mj = [[YFViewController alloc] initWithNibName:@"YFViewController" bundle:nil];
    3.直接创建
    YFViewController *mj = [[YFViewController alloc] init];
    一个iOS的app很少只由一个控制器组成,除非这个app极其简单,当app中有多个控制器的时候,我们就需要对这些控制器进行管理,有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器,比如,用一个控制器A去管理3个控制器B、C、D,控制器A被称为控制器B、C、D的“父控制器”,控制器B、C、D的被称为控制器A的“子控制器”,为了便于管理控制器,iOS提供了2个比较特殊的控制器,UINavigationController和UITabBarController。
    •UINavigationController以栈的形式保存子控制器
    •使用push方法能将某个控制器压入栈
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
    •使用pop方法可以移除控制器
    //将栈顶的控制器移除
    - (UIViewController *)popViewControllerAnimated:(BOOL)animated;
    //回到指定的子控制器
    - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
    //回到根控制器(栈底控制器)
    - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
    •导航栏的内容由栈顶控制器的navigationItem属性决定,UINavigationItem有以下属性影响着导航栏的内容
    //左上角的返回按钮
    @property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
    //中间的标题视图
    @property(nonatomic,retain) UIView          *titleView;
    //中间的标题文字
    @property(nonatomic,copy)   NSString        *title;
    //左上角的视图
    @property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
    UIBarButtonItem *rightBarButtonItem  
    //右上角的视图
    @property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
    控制器里的view加载过程:
    控制器的view加载整个生命周期中各个时期调用的方法:
    内存警告处理:
  • 相关阅读:
    Python
    Django
    Markdown基础教程
    LR之Oracle 2tier协议录制Oracle脚本
    Python实现自动连接密码本破解wifi
    LoadRunner替换url字符串(可以同时替换多个)
    LoadRunner接口HTTP请求中中文乱码解决方案
    在WSL2中安装ArchLinux
    解决FastJson中"$ref重复引用"的问题方法
    java 后台通过IO流把文件传到前端并下载
  • 原文地址:https://www.cnblogs.com/yif1991/p/5143094.html
Copyright © 2011-2022 走看看