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、如何修改导航栏的内容

  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/luseike/p/3900119.html
Copyright © 2011-2022 走看看