给定一个容器视图,如何获取子视图控制器信息
Posted
技术标签:
【中文标题】给定一个容器视图,如何获取子视图控制器信息【英文标题】:GIven a container view, how to get child viewcontroller info 【发布时间】:2020-04-17 02:54:19 【问题描述】:我在 containerView 中添加了一个 viewController。如果我知道 containerView 如何获得添加的 viewController?
在我的 containerView 中,根据场景我正在加载 viewController1 或 viewController2。在某些时候,我需要从 viewController 中提取变量值
我正在尝试实现类似的东西
viewController1 有变量 -> dataOfVC1 viewController2 有变量 -> dataOfVC2if let vc = "viewController in containerView is of type ViewController1"
let tempVar = vc.dataOfVC1
当我输入 containerView 时。 -> 所有我能找到有用的东西是 subView..但是我怎样才能得到 viewController
我如何写我的 if 条件?
【问题讨论】:
【参考方案1】:containerView 使用 segue 将 ViewController 呈现在里面,所以你需要重写 prepare 函数
var currentVC: UIViewController?
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if segue.identifier == "embedChildSegue1"
if let childVC = segue.destination as? ViewController1
currentVC = childVC
else if segue.identifier == "embedChildSegue2"
if let childVC = segue.destination as? ViewController2
currentVC = childVC
你可以使用 if let 再次检查其他函数中的当前 VC
if let vc1 = currentVC as? ViewController1
let tempVar = vc1.dataOfVC1
【讨论】:
感谢 aiwiguna,但我的问题不同..如果我知道容器视图,我如何在其视图控制器中获取变量的值 关于如何从containerview内部的viewcontroller获取变量,containerview会在viewdidload之前调用segue,所以要获取containerview内部的viewcontroller需要重写prepare函数,就可以获取实例容器视图内的视图控制器 请查看github.com/aiwiguna/ExampleContainerView/tree/master/…以上是关于给定一个容器视图,如何获取子视图控制器信息的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 UINavigationController 子视图
如何在firebase(swift)中获取子节点的值,并将其显示在视图控制器的标签中