我有一个名为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.parent
:MainVC
中使用以下代码,以确保self.childViewControllers[0] as! TableVC
是TableVC
的子视图,代码运行正常。所以,我的问题是,如何获得容器视图的父视图?
答案 0 :(得分:1)
我不知道你需要MainVC引用的原因是什么,但如果你需要在MainVC中执行某些功能或更改某些值,你应该使用Delegates,你可以找到更多关于如何使用它的信息{{ 3}}
其他选项是你在MainVC类型的UITableViewController中创建一个引用,并在你呈现UITableViewController时设置它
答案 1 :(得分:0)
UIView
子类上的 .superview
访问权限都会为您提供父级。
如果您知道视图控制器堆栈的层次结构,columns
应该可以帮助您。