调用ViewDidLoad但未调用ViewWillAppear

时间:2017-02-14 15:54:19

标签: objective-c uitableview uiviewcontroller uicollectionview uicollectionviewcell

基本上,我有一个收藏视图,A = absent N = no Y = yes 在collectionView的cell.contentView中添加了ViewController的视图,如下所示:

willDisplayCell

现在,这个ViewController有一个tableView。在tableview的-(void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { UIViewController *vc = [self.viewControllerArray objectAtIndex:indexPath.row]; [self displayContentController:vc inView:cell]; } - (void)displayContentController:(UIViewController *)viewController inView: (UICollectionViewCell *)cell { [self addChildViewController:viewController]; viewController.view.frame = cell.bounds; [cell.contentView addSubview:viewController.view]; [viewController didMoveToParentViewController:self]; } 中,我推送了一个新的ViewController。

令人惊讶的是,调用了推送的ViewController的didSelectRowAtIndexpathviewDidLoad,但未调用viewDidLayoutSubviews

我还在控制台viewWillAppear

中收到以下警告

我不确定我在做什么错。

甚至尝试使用Unbalanced calls to begin/end appearance transitions for <viewController Having collection View>而不是运气。

1 个答案:

答案 0 :(得分:0)

需要将ViewController添加到UINavigationController堆栈中!