zoukankan      html  css  js  c++  java
  • 步步入佳境---UI入门(3) --单视图控制器

    视图控制器特点
    //1,抽象  视觉上没有效果
    //2,负责控制视图的显示方式
    //3,负责通知视图的显示内容
    //4,ios平台赋予的,收到内存警告和检测设备旋转
    @interface CHViewController : UIViewController
    //@property(nonatomic,retain)UIView *view;
    //当使用访问器访问该视图控制器的根视图时,如果该视图控制器的根视图为空(没有使用设置器进行赋值过..),那么该视图控制器对象会自动收到消息-loadView..[view loadView],否则会直接返回该视图控制器的根视图...;
    @end


    //新建的视图控制器一定是继承于UIViewController的,或者是他的子类...
    //因为这是一个视图控制器
    -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        //一定要对super对象发送消息,目的是为了调用父类的实现方法
        if (self= [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
        {
            //新建类的自定义初始化方法..
            self.title=@"haha";
        }
        //返回初始化结果
        return self;
    }
    -(void)dealloc
    {
          mutableArray=nil;
        self.title=nil;
    }
    -(void)loadView
    {
        NSLog(@"%s",__FUNCTION__);
        [super loadView];//父视图加载之后,view就不会是空了
        NSLog(@"%@",self.view);//如果view为空就会执行loadView.如果view为空就会陷入死循环
    //[super loadView];
    }
    //根视图完成加载
    - (void)viewDidLoad
    {
         NSLog(@"%s",__FUNCTION__);
        [super viewDidLoad];
        mutableArray=[NSMutableArray new];
        // Do any additional setup after loading the view, typically from a nib.
    }

    //控制器实例对象收到内存警告...
    //当控制器实例对象收到内存警告时,控制器实例对象会自动对自身的根视图赋值为空,相当于执行了self.view=nil;
    - (void)didReceiveMemoryWarning//自动将根视图赋值为空,为了释放内存//但是特殊情况是视图正在显示的时候就不会赋值为空
    {
         NSLog(@"%s",__FUNCTION__);
        [super didReceiveMemoryWarning];
         mutableArray =nil;
        // Dispose of any resources that can be recreated.
    }
    //////////////////////////以上为第一层循环

    //以下为第二层循环
    -(void)viewWillAppear:(BOOL)animated
    {
        NSLog(@"----------%s",__FUNCTION__);
        [super viewWillAppear:animated];
    }
    -(void)viewDidAppear:(BOOL)animated
    {
     NSLog(@"%s",__FUNCTION__);
        [super viewDidAppear:animated];
    }
    -(void)viewWillDisappear:(BOOL)animated
    {
     NSLog(@"%s",__FUNCTION__);
        [super viewWillDisappear:animated];
    }
    -(void)viewDidDisappear:(BOOL)animated
    {
     NSLog(@"%s",__FUNCTION__);
        [super viewDidDisappear:animated];
    }
    @end

    视图功能:显示视图控制器通知它显示的内容,ios赋予它响应用户交互,承载动画

    每个view都有一个tag属性.

    [self.view viewWithtag:int];tag默认都为0.

    UIWindow是self.view的父view.

    多态就是多种状态

  • 相关阅读:
    在浏览器中输入url后执行的全过程
    自己搭建一个类似vue,实现响应式的原理
    关于vue是怎么放到服务器上运行的基于vue-cli3
    vue v-modal语法糖
    js中的Map和Set
    js的reduce方法
    vue双向绑定原理
    js对象原型-class类
    (二)仅仅通过Application监听用户行为及App的在线状态和在线时长
    (一)仅仅用ApplicationContext加载界面
  • 原文地址:https://www.cnblogs.com/huntaiji/p/3421003.html
Copyright © 2011-2022 走看看