• 控制器管理


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

  • 相关阅读:
    如何在没鼠标没网络的情况下如何安装驱动以及日常的操作
    开启平行眼的一些小技巧
    go-redis连接
    奶牛议会
    转载(int.TryParse用法)用于对字符串内容进行判断
    Javascript扩展Date的prototype实现时间format函数
    dsu on tree学习笔记
    DP做题笔记
    期望概率做题笔记
    生成函数做题笔记
  • 原文地址:https://www.cnblogs.com/luseike/p/3900119.html
Copyright © 2020-2023  润新知