以下のようにメソッド外でクラスをインスタンス化しておきます。

var firstCtrl = firstViewController()

その後以下のif文で箇所でfirstViewController()クラスのviewDidLoadが呼ばれました。

for subv in self.mainContainer.subviews {

    if subv == self.firstCtrl.view {  
        subv.removeFromSuperview()
    }
}

インスタンス化してからこの箇所で初めてfirstCtrlを使い、viewDidLoadが呼ばれたのでSwiftではインスタンス化してから初めて使う場合はviewDidLoadが呼ばれるようになったのかと思ったのですがどうなのでしょうか?

Objective-Cでも試してみましたが呼ばれず、他の言語では一般的な動きだったりするという情報を見たのでそうなのかと思いました。