Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。3,292件0以下のようにメソッド外でクラスをインスタンス化しておきます。firstViewController()その後以下のif文で箇所でfirstViewController()クラスのviewDidLoadが呼ばれました。}}インスタンス化してからこの箇所で初めてfirstCtrlを使い、viewDidLoadが呼ばれたのでSwiftではインスタンス化してから初めて使う場合はviewDidLoadが呼ばれるようになったのかと思ったのですがどうなのでしょうか?Objective-Cでも試してみましたが呼ばれず、他の言語では一般的な動きだったりするという情報を見たのでそうなのかと思いました。票3まず大前提ですが、viewDidLoad()が呼ばれるタイミングは言語によって変化することはありません。このメソッドはSwiftやObjective-Cなどの言語機能の一部として呼ばれるのではなく、iOSのViewControllerのライフサイクル管理の一部として呼ばれます。内部的にはviewDidLoadと言うセレクタで表されるメソッドを呼び出しているだけです。Objective-Cでも試してみましたが呼ばれずとありますが、こちらで同じ動作をするコードをObjective-Cで記述してみましたが、viewDidLoadが呼ばれるのは確認できました。あなたが試されたコードはSwift版と全く同じ動作にはなっていなかっただけだろうと思います。実際にviewDidLoad()がいつ呼ばれるのかについては、Appleの公式リファレンス等を参考にしてください。controllerがそのview階層を全てメモリ中に読み込んだ後に呼び出されます。view階層がnibファイルからロードされたかloadView()メソッドの中でプログラム的に生成されたかには関係ありません。あなたのコードの場合、nibファイルからロードされたのでないことは間違いありませんから、loadView()が呼ばれてその中でview階層が作成されてメモリ中に読み込まれたからviewDidLoad()が呼ばれたのだ、と言うことになります。どこにも記述のないloadView()がどこで呼び出されたのか、ですが、viewプロパティの方にこんな記述があります。view.このプロパティをアクセスする時に、その値がnilであればviewcontrollerは自動的にloadView()メソッドを呼び出し、その結果のviewを返します。インスタンス化してから初めて使う場合はviewDidLoadが呼ばれるのではなく、viewプロパティがnilの状態でviewプロパティを参照しようとすると、loadView()が呼ばれ、その結果としてviewDidLoad()も呼ばれる、と言うことになります。他の言語では一般的な動きだったりするという情報がどのような情報を見られたのかわからないのですが、この動作はSwiftでもObjective-Cでも同じです。時間が取れましたらObjective-Cのコードが完全にSwiftと同じになるようにして試して見られたらどうかと思います。|-3viewDidLoad()メソッドがいつ呼ばれるかというと、UIViewControllerのビューが、画面に表示された時です。検証用のコードを用意しました。FirstViewControllerのインスタンスを生成して、それをモーダル表示する。FirstViewControllerのインスタンスを生成だけして、ほかはなにもしない。}}ボタンをふたつ作って、instantiateA()とinstantiateB()とコネクトします。FirstViewControllerのインスタンスが生成されたら、呼ぶ。画面に表示されたら呼ぶ。画面をタップして、モーダル表示を終了する。instantiated画面に表示して、はじめてviewDidLoad()が呼ばれることがわかると思います。※画面表示せずにviewDidLoad()を呼ぶ方法は、実用的な意味を見出せないので、検討する気にはなりません。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。