以下の様にVCのviewDidLoad内で別のVCのインスタンを作成する場合のライフサイクルについてです。
Swift
1 override func viewDidLoad() { 2 super.viewDidLoad() 3 let vc = CardItemViewController() 4}
以上のviewDidLoadが実行されるとその後CardItemViewController()のviewDidLoadが実行される様な流れになっている様です。
ここで、この以上のviewDidLoadを別のメソッドから再度以下の様に呼び出しました。
Swift
1@IBAction func add(_ sender: Any) { 2 3 loadView() 4 viewDidLoad() 5 6 }
これをブレイクポイントをうって確認するとviewDidLoad()が実行され、再度CardItemViewController()のインスタンスが作られている様なのですが、CardItemViewController()のviewDidLoad()が実行されないためUIViewには何も表示されません。これはどうしてでしょうか?
追記ーーーーーーー
Storybord上で親のViewにUIViewを置いて以下の様にsegueで接続しました。
正直このCardItemViewControllerはライブラリでなぜこの様にするとViewが表示されるかもよく分からずgitの説明にあるまま使っている状態です。このPageControlViewControllerの上にCardItemViewControllerが表示さている様です。ただそれでも最初にviewDidLoadが実行された際はCardItemViewControllerのviewDidLoadも実行されうまく行きます。しかし他のメソッドから再度viewDidLoadを実行して再描画しようとするとなぜか子のviewであるCardItemViewControllerのviewDidLoadが実行されません。。。
回答1件
あなたの回答
tips
プレビュー