zoukankan      html  css  js  c++  java
  • iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)

    1.loadView

    这是视图控制器用来加载根视图的方法;

    如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view定义为视图控制器的根视图;

    自定义视图中的简单响应事件也应由视图控制器来进行处理,写在此方法内;

    2.viewDIdLoad

    当视图控制器的根视图加载完成之后触发该方法;(也就是loadView调用完成之后会立即调用该方法);

    需要调用父类对该方法的实现;

    该方法可以对根视图进行简单的一些设置,比如背景颜色等等;

    3.viewWillAppear:(BOOL)animated;  //当视图控制器的根视图将要显示时触发;

    4.viewDidAppear:(BOOL)animated;  //当视图控制器的根视图显示时触发;

    5.viewWillDisappear:(BOOL)animated;  //当视图控制器的根视图将要消失时触发;

    6.viewDidDisappear:(BOOL)animated;  //当视图控制器的根视图消失时触发;

    7.didReceiveMemoryWarning;//当收到内存警告时触发, 此时需要释放掉暂时不使用的资源,以及可重建对象;

    1 - (void)didReceiveMemoryWarning {
    2     [super didReceiveMemoryWarning];
    3     if ([self isViewLoaded] && !self.view.window) {
    4         self.view = nil;
    5     }
    6 }
    7 //[self isViewLoaded] 看视图是否已经加载了
    8 //self.view.window 看根视图有没有在window上展示

     

    #pragma mark -- 和屏幕旋转相关的方法

    8.设置当设备发生旋转时,当前界面是否发生变化,支持旋转

    - (BOOL)shouldAutorotate {

        return YES;

    }

    9.设置当前界面支持的旋转的方向. 必须要依赖于当前应用程序支持的方向;

    - (NSUInteger)supportedInterfaceOrientations {

        return UIInterfaceOrientationMaskAll;//支持所有方向

    }

    10.当屏幕旋转时触发,iOS8之后有效

    - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {

        //size 表示旋转之后的屏幕的尺寸;

        NSLog(@"%@",NSStringFromCGSize(size)); //输出此时的屏幕尺寸;

    }

     

    关于调用父类的方法:

    //父类对该方法的实现,可以用来帮助我们对视图进行一些初始化(有些初始化工作我们是不知道的,也看不到,所以一定要调用);

    //当重写从父类继承过来的方法时,如果不知道父类对该方法是如何实现的,记得要使用super调用该方法的实现;

    关于方法中的[super xxx]调用父类的方法,如果不需要额外添加内容,有参数的直接return YES就行了.

     

    //补充一个:

    -(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;

    这是视图控制器的指定初始化方法,无论调用哪个方法,改初始化方法都会被触发;

    -(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            //完成本类独有的初始化操作.
        }
        return self;
    }

     

  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/ErosLii/p/4471096.html
Copyright © 2011-2022 走看看