Tag: parentviewcontroller

如何在父视图控制器和子视图控制器之间传输数据

我曾试着在类似的问题上看到这个答案,但我不是特别有经验,并且遇到了麻烦,所以任何帮助将不胜感激! 我的情况如下:当我按下我的父ViewController中的button,下面的代码是用来调用一个Child ViewController(顺便说一句,孩子实际上是一个TableViewController,但它似乎工作正常“思考”这是一个正常的视图控制器)? controller = (storyboard?.instantiateViewController(withIdentifier: "People")) addChildViewController(controller!) controller?.view.frame = CGRect(x: 10, y: 200, width: 394, height: 300) self.view.addSubview((controller?.view)!) controller?.didMove(toParentViewController: self) 然后我会喜欢将一个数组从Parent传递给Child,在那里它将被用作TableView的数据? 其次,当我从Child的TableView中select一个单元格时,我想将相关信息发送给Parent,并让Child消失。 如果感兴趣的话,我可以使用以下方法,在不同的情况下(当孩子显示时在父母身上发生点击)设法closures孩子: controller?.willMove(toParentViewController: nil) controller?.view.removeFromSuperview() controller?.removeFromParentViewController() 我真的很感激任何build议,即使它是一个有用的东西的链接!

容器视图控制器 – 通知父母的行动

说我有一个自定义的容器视图控制器(MainViewController),我做这样的事情: – (void)viewDidLoad { [super viewDidLoad]; HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; [self addChildViewController:homeVC]; [self.view addSubview:homeVC.view]; } HomeViewController会有一个button,比如“go”,按下的时候需要前进到下一个视图控制器。 所以我需要通知这个动作的MainViewController。 做这个的最好方式是什么? 我正在使用自定义容器,因为我需要在视图控制器之间进行自定义转换。 当按下“go”时,HomeViewController上的一些视图将animation,而来自新视图控制器的视图将animation到位。 很明显,我可以给HomeViewControllertypes的MainViewController的属性,并通过这种方式进行调用,但我希望有一个更清洁的方式与容器视图控制器API。

将子视图控制器的视图添加到父视图控制器的子视图中

我想添加一个tableViewController作为一个containerViewController的子视图控制器(如下所示)。 根据苹果公司的视图控制器编程指南,我可以通过在我的containerViewController里面的以下几行代码来实现: [self addChildViewController:tableViewController]; [self.view addSubview:tableViewController.view]; [tableViewController didMoveToParentViewController:self]; 事实上,这工作正常。 现在的问题是,我不想添加tableViewController的视图作为containerViewController的根视图的子视图。 相反,我想添加它作为containerView的子视图(见图),它本身是containerViewController的根视图的子视图。 所以我改变了上面的代码如下: [self addChildViewController:tableViewController]; [self.contentView addSubview:tableViewController.view]; [tableViewController didMoveToParentViewController:self]; 现在,当我启动应用程序,它立即崩溃,这个错误: 终止应用程序由于未捕获的exception'UIViewControllerHierarchyInconsistency',原因:'子视图控制器:应该有父视图控制器:但实际的父母是:' 这里有什么问题? 是不是可以添加一个childViewController的视图到其containerViewController的特定子视图? 或者我怎么能实现这个没有在视图控制器层次结构中的错误?