IOS开发笔记之视图控制器的创建和生命周期

视图控制器的创建

废话不多说,直接上代码
ps:没有通过storyBoard创建视图控制器,而是在AppDelegate中来创建控制器

//程序的入口
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    //创建windows
    //1.创建window对象
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    
    //1.1通过代码创建视图控制器
    let controller = ZQViewController()
    //设置背景颜色(每个视图都有一个view属性,辅助视图控制器的显示)
    controller.view.backgroundColor = UIColor.redColor()
    
    //1.2通过storyBoard去创建视图控制器
    //a.拿到storyBoard文件
    //参数1:文件名
    let story = UIStoryboard(name: "My", bundle: nil)
    //拿到storyboard中箭头指向的视图控制器
    let storyController = story.instantiateInitialViewController()
    
    //1.3通过xib去创建视图
    let xibController = ZQViewController(nibName: "My", bundle: nil)
    //b 直接创建ViewController的时候,创建Xib 默认先会去找和控制器是否有重名的storyboard,有就加载其中有箭头指向的视图控制器
    let xibController2 = FirstViewController()
    
    //2.设置根控制器
    /*
     UIViewController是iOS中,所有的视图控制器的父类
     a.!!!!!视图控制器本身是不能显示的,但是因为视图控制器都有一个View属性,所以导致视图控制器可见.视图控制器中View的大小,默认和屏幕大小是一样的
     b.正常情况下,不会直接使用UIViewController类型,而是继承UIViewController写一个自己的视图控制器类
     c.一个应用程序中,一个界面就对应一个视图控制器
     */
    
    self.window?.rootViewController = xibController2
    //显示window
    //在配置中,没有取消MainInterface的选项 可以不设置一下代码
    window?.makeKeyAndVisible()
    
    return true
}
Main_interface.png

视图控制器的声明周期

/*
 说明:
    1.视图控制器的生命周期值得是视图控制器中的View的属性生命(生 -> 死)
    2.视图控制器所有生命周期相关方法重写的时候,必须通过super去调用父类当前的生命周期方法
    3.生命周期的方法都是自动调用的
 */

//MRAK:: - 生命周期

//在视图控制器创建view属性的调用这个方法
override func loadView() {
    super.loadView()
    print("loadView -- view属性诞生")
}
//在视图控制器view属性加载完成后调用(将加载好的UIView对象赋给视图控制器对象,作为视图控制器的View属性)->在这个方法中去创建界面
//每次创建视图控制器的时候的时候,会调用一次
override func viewDidLoad() {
    super.viewDidLoad()
    print("viewDidLoad -- view加载完成")
}
//viewWillAppear 在View将要出现在界面的时候调用(可能会被调用多次)
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    print("viewWillAppear -- view将要出现")
}
//viewDidAppear 在View已经出现在界面的时候调用(可能会被调用多次)
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    print("viewDidAppear -- view显示在界面上")
}
//view将要消失的时候调用(可能会被调用多次)
override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    print("viewWillDisappear -- view即将消失")
}
//view已经消失的时候调用(可能会被调用多次)
override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    print("viewDidDisappear -- view已经消失")
}
//接受到内存警告的时候会被调用
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    
}
//类死亡时调用
deinit{
    print("类死亡时调用")
}

你可能感兴趣的:(IOS开发笔记之视图控制器的创建和生命周期)