UIViewController viewWillAppear はサブビューとして追加すると呼び出されません 質問する

UIViewController viewWillAppear はサブビューとして追加すると呼び出されません 質問する

UIViewController別のビュー コントローラ内から をロードし、そのビューを に追加していますUIScrollView

self.statisticsController = [self.storyboard instantiateViewControllerWithIdentifier:@"StatisticsViewController"];
self.statisticsController.match = self.match;

[self.scrollView addSubview:self.statisticsController.view];

統計ビュー コントローラーにブレークポイントを設定しましたが、viewDidLoad呼び出されviewWillAppearません。

階層に押し込んでいないからでしょうか?

ベストアンサー1

statisticsControllerビューを追加するコントローラの子ビューコントローラとして追加する必要があります。

self.statisticsController = [self.storyboard instantiateViewControllerWithIdentifier:@"StatisticsViewController"];
self.statisticsController.match = self.match;

[self.scrollView addSubview:self.statisticsController.view];
[self addChildViewController:self.statisticsController];
[self.statisticsController didMoveToParentViewController:self];

これが呼び出されるかどうかはわかりませんviewDidAppearが、子コントローラーでオーバーライドするとそれが呼び出されるので、そこにdidMoveToParentViewController:任意のコードを配置できます。viewDidAppear

おすすめ記事