我的主视图控制器上的容器视图内有一个UIViewController。我试图取消隐藏子视图控制器并在子视图上执行功能,但我不知道如何正确访问它。
我已经尝试过了:
let ChildVC = children.first as! ChildView
ChildVC.RunFunction()
但这不起作用,因为我有多个子视图。
let ChildVC = storyboard?.instantiateViewController(withIdentifier: "Child") as! ChildView
ChildVC.RunFunction()
然后,我尝试了此操作,但是当执行RunFunction()函数时,它抛出很多错误,表明其中的内容为零。 (该错误与run函数无关,因为通过children.first方法访问时,该函数运行正常)
如何在不使用children [1](或childViewController的编号是多少)方法的情况下指定确切的childViewController?
任何帮助将不胜感激!
答案 0 :(得分:1)
由于您提到了“容器视图”,所以我假设您使用嵌入的segue调用子视图控制器。
假设是这种情况,您应该实现一个pip install sqlalchemy
方法,该方法保存指向孩子的指针:
给父视图控制器一个实例变量:
prepare(for:sender)
然后在您的var childView: ChildView?
方法中
prepare(for:sender)
然后,当您需要将消息发送到childView时:
func prepare(for segue: NSStoryboardSegue, sender: Any?) {
if let dest = segue.destination as? ChildView {
childView = dest
}
}
(方法名称应以小写字母开头)