我有一个masterViewcontroller
,上面有container
,并且有一个2ndViewController
通过情节提要嵌入其中。我想知道如何从masterViewController
访问2ndViewController。
我已经了解过使用prepare for segue的方法,但是当显示容器中的viewController时似乎没有要求这样做。我需要关联一些东西才能使其出现在“准备segue”功能中吗?
还是有另一种方法可以实现这一目标?
答案 0 :(得分:0)
您需要覆盖prepare(for segue: sender:)
类中的masterViewController
。
segue在情节提要中需要一个标识符。然后在prepare
中,检查要准备的序列是否是您通过segue.identifier == "yourIdentifier"
赋予标识符的序列。
然后您可以将嵌入式ViewController解析为2ndViewController
,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yourIdentifier" {
let child = segue.destination as! 2ndViewController
}
}
顺便说一句,如果您使用as!
,则将segue.destination
强制展开为2ndViewController
类。如果您不能100%地确定此segue始终将其作为目标类,请考虑使用as?
将child
视为可选类,然后再尝试进行其他检查以尝试使用它。