ios – UIViewController viewWillAppear添加为subView时不会调用

我有一个UIViewController,我从另一个视图控制器中加载,然后将其视图添加到UIScrollView.
self.statisticsController = [self.storyboard instantiateViewControllerWithIdentifier:@"StatisticsViewController"];
self.statisticsController.match = self.match;

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

我在统计视图控制器中放置了断点,并且正在调用viewDidLoad,但是viewWillAppear不是.@H_404_5@

是因为我没有把它推到层次结构上吗?@H_404_5@

解决方法

您应该将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中的任何代码放在那里.@H_404_5@

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...