我有一个UIViewController,我从另一个视图控制器中加载,然后将其视图添加到UIScrollView.
self.statisticsController = [self.storyboard instantiateViewControllerWithIdentifier:@"StatisticsViewController"]; self.statisticsController.match = self.match; [self.scrollView addSubview:self.statisticsController.view];
我在统计视图控制器中放置了断点,并且正在调用viewDidLoad,但是viewWillAppear不是.
是因为我没有把它推到层次结构上吗?
解决方法
您应该将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中的任何代码放在那里.