8.15 时机


import UIKit

class ViewController: UIViewController {

    //1.通过代码创建对象时调用
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        print("ViewController::init(nibName:bundle:)")

    }

    
    //通过Storyboard创建对象时自动调用
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        print("ViewController::init(coder:)")
    }

    //2.Storyboard中创建的,如果代码创建不被调用
    override func awakeFromNib() {
        super.awakeFromNib()
        print("ViewController:awakeFromNib()")
    }

    //3.加载self.view
    //唯一一个可以更换self.view的位置
    //必须需要在里面创建self.view
//    override func loadView() {
//        print("ViewController:loadView()")
//        
//        let v = UIView()
//        v.backgroundColor = UIColor.greenColor()
//        self.view = v
//    }
    
    //UITableViewController
    //4.
    //self.view已经被创建
    override func viewDidLoad() {
        super.viewDidLoad()  
        print("ViewController::viewDidLoad()")
    }

    //5. 页面将要显示
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        print("ViewController::viewWillAppear(:)")
    }
    
    //6. 将要开始布局
    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()  
        print("ViewController::viewWillLayoutSubviews()")
    }
    
    //7. 布局完成
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()        
        //可以获取自动布局控件的真实位置和大小
        print("ViewController::viewDidLayoutSubviews()")
    }
    
    //8. 页面已经显示
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        print("ViewController::viewDidAppear(:)")

    }

    //页面将要消失
    override func viewWillDisappear(animated: Bool) {
        super.viewWillDisappear(animated)
        print("ViewController::viewWillDisappear(:)")
    }

    override func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)  
        print("ViewController:viewDidDisappear(:)")
    }
    deinit {
        print("deinit")
    }
}

8.15 时机_第1张图片
Paste_Image.png

可以明显看到系统显示一个页面的每一个步骤
点击一个Button,跳转到下一个页面,查看步骤。

8.15 时机_第2张图片
Paste_Image.png

再返回第一个页面

8.15 时机_第3张图片
Paste_Image.png

必须记住每一个步骤在什么时候执行

以后写代码如果放错了“时机”会引起报错,或者程序崩溃。

你可能感兴趣的:(8.15 时机)