zoukankan      html  css  js  c++  java
  • 生命周期-初识IOS

    经常因为生命周期的事情,而视图顺序加载错误,或者出现一系列的小错误并且修改不出来,程序员不知道生命周期确实挺可悲的。

    IOS生命周期:

    •   自上而下的执行,并且viewDidLoad只会执行一次,所以我们一般把对象的声明放在viewDidLoad中去。
    •   Main.storyboard会比viewDidLoad先执行初始化。所以代码如果和视图有冲突,那就是代码覆盖视图了。

    这里我写了一个可以清楚的看到视图加载的顺序的小程序:

    新生成一个类管理一个页面用来主页面的跳转,设置一下背景色。

    - (void) viewWillAppear:(BOOL)animated
    {
        //将要显示时
        NSLog(@"%s",__func__);
    }
    -(void) viewDidAppear:(BOOL)animated
    {
        //显示之后
        NSLog(@"%s",__func__);
    }
    -(void) viewWillDisappear:(BOOL)animated
    {
    //将要消失
        NSLog(@"%s",__func__);
    }
    -(void) viewDidDisappear:(BOOL)animated
    {
    //消失之后
        NSLog(@"%s",__func__);
    }

    可以看到这四个代理方法是两两相对应的。_func_返回方法名。再加载一个跳转按钮拉一个点击事件

    - (IBAction)click:(id)sender {
        _test =[[ssViewController alloc]init];
        [self presentViewController:_test animated:YES completion:^{}];
        
    }

    _test 是页面对象,点击这个click按钮,就可以跳转到ssViewController 所控制的界面了。

    看下面的控制台输出,就可以很直观的看到所有方法的执行顺序,也就是相应的生命周期。

    可能说的不太清楚,但是,基本上坚持自上而下执行,界面和代码的执行顺序就行。

  • 相关阅读:
    Shell 脚本基本操作练习
    Unix 环境高级编程---线程创建、同步、
    ubuntu 安装ssh-server时出现错误:openssh-server: Depends: openssh-client (= 1:5.3p1-3ubuntu3) but 1:5.3p1-3ubuntu4 is to be installed
    python set 集合
    python 深浅拷贝
    用户权限管理
    vim 编辑器的使用
    linux系统初体验
    平滑升级nginx
    在windows下如何使用密钥对远程登录服务器?
  • 原文地址:https://www.cnblogs.com/IT-jqm/p/shengming_test.html
Copyright © 2011-2022 走看看