UI基础--UIViewController

程序运行时会先走main函数,我们先看一下main函数吧:

#import <UIKit/UIKit.h>
#import "AppDelegate.h"


//程序的主入口
int main(int argc, char * argv[]) {
    //自动内存释放池
    @autoreleasepool {
        //UIApplicationMain UIKit框架的启动函数
        //参数1.argc 启动时带有参数的个数
        //p2.argv 参数列表
        //p3.nil 空指针 要求传入一个主框架类对象;如果为nil,系统就会默认的框架作为主框架类名
        //p4.主框架的代理类对象名字
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

然后会走他的一些协议方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    //创建一个Window对象
    //属于Appdelegate对象
    //
    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
    self.window.backgroundColor = [UIColor yellowColor];
    
    self.window.rootViewController = [ViewController new];
    
    //window作为主视图并显示;
    [self.window makeKeyAndVisible];
    
    
    return YES;
}

在看一下ViewController里面:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

//当试图控制器第一次加载的时候被调用
//布局初始化视图
- (void)viewDidLoad {
    //调用父类的加载视图的函数
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor orangeColor];
    
    NSLog(@"viewDidLoad! 第一次加载函数");
}
//当程序第一次运行的时候回先走viewDidLoad,并且只会加载一次,当视图在显示的时候就不会走这个方法了,而viewWillAppear视图每次显示都会调用(没有出现在屏幕上)
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@"视图将要显示");
}
//视图已经在屏幕上显示了
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSLog(@"视图已经显示");
}
//视图将要消失(还没有消失,还在屏幕上)
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    NSLog(@"视图将要消失");
}
//视图已经消失(已经不再屏幕之上)
-(void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"视图已经消失");
}
//内存收到警告时会调用
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
原文地址:https://www.cnblogs.com/LzwBlog/p/5675834.html