• 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加载整个生命周期中各个时期调用的方法:
    内存警告处理:
  • 相关阅读:
    weblogic 未授权命令执行漏洞(CVE-2020-14882,CVE-2020-14883)复现
    sqlmap之--os-shell命令执行原理
    HTTP协议层面绕过WAF
    windows下过安全狗
    [SUCTF 2019]Pythonginx
    warmup(HCTF 2018)
    phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
    phpMyAdmin写入WebShell(二)
    phpMyAdmin写入WebShell(一)
    [SUCTF 2019]EasySQL
  • 原文地址:https://www.cnblogs.com/yif1991/p/5143094.html
Copyright © 2020-2023  润新知