【发布时间】:2017-07-03 04:28:35
【问题描述】:
我有一个名为 MainVC 的 UIViewController 通过使用容器包含一个名为 TableVC 的 UITableViewController,我正在尝试通过在其自身内部使用以下代码来获取 TableVC 的父视图控制器:@987654324 @,但我得到fatal error: unexpectedly found nil while unwrapping an Optional value。然后我仔细检查了self.parent 是否如预期的那样为零。之后,我在MainVC:self.childViewControllers[0] as! TableVC 中使用以下代码来确保TableVC 是MainVC 的子视图,并且代码工作正常。那么,我的问题是,如何获取容器视图的父视图?
【问题讨论】:
-
您是否有可能尝试在 TableVC 实际添加到父视图控制器之前 获取父视图控制器?您在代码中的哪个位置调用 let parentVC = self.parent as!主VC?
-
@DonMag 在函数 ViewDidLoad() 中
-
@DonMag 我刚刚将它移到了 func ViewWillAppear() 中,它起作用了!非常感谢!
-
您是通过情节提要还是编程方式配置了这两个控制器?
-
OK - 可能发生了什么:ViewDidLoad() 在您的 TableVC 加载时运行......在那时,它实际上不是任何东西的孩子......所以你不能得到它的父母。尝试将
let parentVC = self.parent放入 viewDidAppear()... 编辑:哎呀,你的评论打败了我 :)
标签: ios swift swift3 uicontainerview