获取容器视图的父视图控制器

时间:2017-02-14 18:30:44

标签: ios swift swift3 uicontainerview

我有一个名为Prelude> :set -XMonomorphismRestriction Prelude> :{ Prelude| let mi = minBound Prelude| ma = maxBound Prelude| le = fromIntegral $ length $ show ma Prelude| in [mi,ma,le] :: [Int] Prelude| :} [-9223372036854775808,9223372036854775807,19] 的UIViewController包含一个名为MainVC的UITableViewController使用容器,我试图通过使用以下代码获取TableVC的父视图控制器本身:TableVC,但我得let parentVC = self.parent as! MainVC。然后我仔细检查fatal error: unexpectedly found nil while unwrapping an Optional value是否为零,如预期的那样。之后,我在self.parentMainVC中使用以下代码,以确保self.childViewControllers[0] as! TableVCTableVC的子视图,代码运行正常。所以,我的问题是,如何获得容器视图的父视图?

2 个答案:

答案 0 :(得分:1)

我不知道你需要MainVC引用的原因是什么,但如果你需要在MainVC中执行某些功能或更改某些值,你应该使用Delegates,你可以找到更多关于如何使用它的信息{{ 3}}

其他选项是你在MainVC类型的UITableViewController中创建一个引用,并在你呈现UITableViewController时设置它

here

enter image description here

答案 1 :(得分:0)

任何UIView子类上的

.superview访问权限都会为您提供父级。 如果您知道视图控制器堆栈的层次结构,columns应该可以帮助您。