zoukankan      html  css  js  c++  java
  • 控制器管理

    1、如何创建一个控制器

    a、通过storyboard创建:

    //先加载storyboard文件(Test是storyboard的文件名)
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
    
    //接着初始化storyboard中的控制器,初始化“初始控制器”(箭头所指的控制器)
    YLViewController *yl = [storyboard instantiateInitialViewController];
    
    //通过一个标识初始化对应的控制器
    YLViewController *yl = [storyboard instantiateViewControllerWithIdentifier:@”yl"];
    

     b、直接创建

    YLViewController *yl = [[YLViewController alloc] init];

    c、指定xib文件来创建

    YLViewController *mj = [[YLViewController alloc] initWithNibName:@"YLViewController" bundle:nil];
    

     2、控制器View的延迟加载

    控制器的View是延迟加载的,也就是说用到时再加载

    可以用isViewLoaded方法判断一个UIViewController的View是否已经被加载,控制器的View加载完毕就会调用viewDidLoad方法

    3、多控制器管理概念

    界面中有多个View时,可以用一个大的View作为父View进行统一管理,方便所有View的属性(位置、宽高)的控制。当一个APP中有多个控制器时,也需要一个控制器来统一管理,父控制器和子控制器由此而生。

    为了方便管理控制器,IOS提供了2个比较特殊的控制器(当然我们完全可以自定义它们)

    UINavigationController、UITabBarController。

    UINavigationController的简单使用

    a、初始化UINavigationController

    b、设置UIWindow的rootViewController为UINavigationController

    c、根据具体情况,通过push方法添加对应个数的子控制器

    4、UINavigationController的子控制器

    UINavigationController以栈的形式保存子控制器

      @property(nonatomic,copy) NSArray *viewControllers;

      @property(nonatomic,readonly) NSArray *childViewControllers;

    使用push方法能将某个控制器压入栈

    使用pop方法可以移除控制器

    回到指定的子控制器popToViewController

    回到根控制器popToRootViewControllerAnimated

    5、如何修改导航栏的内容

  • 相关阅读:
    es6之更优雅的条件语句
    html 提取 公用部分
    jQuery 新添加元素事件绑定无效
    关于ie6块元素行内元素转换
    git 入门级使用
    vim入门级使用
    git安装配置
    学习使用mac
    Angular常用标记
    npm/bower/brew
  • 原文地址:https://www.cnblogs.com/luseike/p/3900119.html
Copyright © 2011-2022 走看看