ViewControllerの親子関係とメソッド

StoryBoardで貼り付けたViewControllerと、コーディングで作成したViewControllerを親子にしたときの、loadViewとviewDidLoadの関係についです。

import UIKit

class ViewController: UIViewController {

    override func loadView() {
        super.loadView()
        println("loadView")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        println("viewDidLoad")
        
        view.backgroundColor = UIColor.brownColor()
        var viewController2 = ViewController2()
        viewController2.view.backgroundColor = UIColor.blueColor()
        viewController2.view.layer.bounds = CGRectMake(0, 0, 100, 100)
        self.addChildViewController(viewController2)
        
         view.addSubview(viewController2.view)
        
        viewController2.didMoveToParentViewController(self)
    }

    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
import UIKit

class ViewController2: UIViewController {
    override func loadView() {
        println("loadView2")
        super.loadView()
    }
    
    override func viewDidLoad() {
        println("viewDidLoad2")
    }
}

実行すると次のように表示されます。

コンソールには、

loadView
viewDidLoad
loadView2
viewDidLoad2

と出力されます。
しかし、ViewController.swiftの赤いところを消して、ViewController2のviewに触れないと、

loadView
viewDidLoad

のように、ViewController2のview関係のメソッドが動作しません。うまくできてますね。