Tag: childviewcontroller

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

我曾试着在类似的问题上看到这个答案,但我不是特别有经验,并且遇到了麻烦,所以任何帮助将不胜感激! 我的情况如下:当我按下我的父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议,即使它是一个有用的东西的链接!

当我添加一个视图到另一个视图(这两个视图是由视图控制器控制),我真的应该使用addChildViewController吗?

我正在用XIB构build一个UIViewController 。 在这个XIB中,我有其他视图控制器中的其他视图的占位符( UIView中的UIView对象)。 (顺便说一下,我也可以直接添加这些视图,没有占位符) 我不是build立一个容器视图控制器:我的意思是它不是一个UINavigationController 。 这只是一个“通常”的视图控制器。 想象一下,例如,我在我的视图中有一个小的子视图,用于“Facebook”徽标和计数器。 这个“Facebook视图”被附加到当“Facebook视图”被触摸时调用的另一个视图控制器。 所以,“Facebook控制器”肯定需要是我的“主”视图控制器@property 。 在这种情况下,我应该真的使用addChildViewController:和所有的机制? 或没有? 谢谢!

iOS的topLayoutGuide使用iOS 7和iOS 8之间的子视图控制器的区别

基本上我试图解决这个问题所要求的同样的问题。 但是,当我在iOS 8上运行应用程序时,一切都按预期工作:子视图控制器正在使用自己的topLayoutGuide,但其位置值根据父级设置的位置值进行了适当设置。 当我在iOS 7上运行时,孩子的topLayoutGuide与父母的不匹配。 为了使这个工作起作用,iOS 8已经做了哪些改变? 如何将相同的行为应用于iOS 7(可能没有使用混合和其他巫术,因为上面提到的链接问题)。

iOS路由viewDidAppear到子视图控制器?

我将一个子视图控制器添加到父视图控制器,并且一切按预期工作,除了子视图控制器没有触发其通常的callback。 例如,像viewWillAppear(animation)的东西永远不会被调用。 我看着它,并认为这可能是因为我没有分别将其添加到父级之前和之后调用子视图控制器上的willMoveToParentViewController和didMoveToParentViewController。 不幸的是,修复没有任何区别。 有谁知道我怎么可以连接这个,所以当我做addChildViewController和removeChildViewController常规callback触发? 在添加childViewController之后,我还将其视图作为子视图添加到父视图控制器的视图中。 在任何一点(addChildViewController&addSubview)子视图控制器的viewWillAppear(animation)等方法被调用… 缺口

在iOS中,使用故事板,如何在容器视图中设置视图控制器?

我创build并绘制了一个名为AutocompleteVC的自定义UIViewController在我的主要故事板。 AutocompleteVC将用于几个不同的地方/故事板和不同的尺寸。 例如,在我的Transit故事板中,如下所示,有一个名为TransitVC的自定义UIViewController,如左图所示。 在TransitVC中,我有一个名为autocompleteContainerView的IBOutlet的容器​​视图。 autocompleteContainerView有一个名为autocompleteEmbedSegue的segue,它是一个通用的UIViewController,显示在右边的红色。 目标是让TransitVC在autocompleteContainerView中保存AutocompleteVC。 但是我很难让这个工作。 我想在容器视图中执行此操作的原因是我可以使用autolayout来设置约束。 否则,我知道如何纯粹在代码中做到这一点。 我相信我的做法可能有缺陷。 如果我想最大化故事板使用率,那么做到这一点的正确方法是什么?

如何将数据从孩子传递给父视图控制器? 迅速

我创build了一个活动,当其中一个文本字段点击它会popup一个小孩(警报对话框)与产品列表,但是当我单击列表中的一个项目时,我不能显示在警报解散后的文本字段上。 这是父视图 import Foundation import UIKit class ViewAward: UIViewController{ @IBOutlet var tfMCN: UITextField! @IBOutlet var tfAmount: UITextField! @IBOutlet var tfProduct: UITextField! @IBOutlet var tfTotal: UITextField! override func viewDidLoad() { super.viewDidLoad() let rightAddBarButtonItem:UIBarButtonItem = UIBarButtonItem(title: "Send", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(ViewAward.searchTapped)) self.navigationItem.setRightBarButtonItems([rightAddBarButtonItem], animated: true) let state = String(ViewPopUpProduct.Product.ProductDescription) print("My view state:"+state) self.tfProduct.text = state tfProduct.addTarget(self, […]

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

说我有一个自定义的容器视图控制器(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。

如何在视图控制器中创build后退button以转到父视图控制器

您好我有一个容器的视图控制器和容器中的一个集合视图的子视图,当用户点击集合视图单元格,它发送给我的详细信息视图控制器,但现在我想要做的是添加一个后退button,在我的详细视图控制器发送给我parentViewController

如何以编程方式添加容器视图

容器视图可以通过界面编辑器轻松添加到故事板中。 当添加时,Container View是占位符视图,embeddedSegue和(子)视图控制器。 但是,我无法find以编程方式添加Container视图的方法。 其实,我甚至无法find一个名为UIContainerView的类。 Container View类的名字肯定是一个好的开始。 包括segue的完整指南将不胜感激。 我知道“视图控制器编程指南”,但我不认为它与Interface Builder为Container Viewer所做的一样。 例如,当约束设置正确时,(子)视图将适应容器视图中的大小更改。

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

我想添加一个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的特定子视图? 或者我怎么能实现这个没有在视图控制器层次结构中的错误?