我有一个容器视图,它根据用户的操作在内部执行几个 segue。我还有一个顶级 UIView,我想从容器视图 segue 中控制它并设置它的状态。
我尝试使用协议以及以下方法为家庭控制器设置委托:
if let parent = self.parent as? HomeController {
parent.handleTopBarState(state: .web)
}
Run Code Online (Sandbox Code Playgroud)
我想要发生的是当我在一个特定的视图控制器上时,设置父视图控制器的顶部栏视图的状态。
谢谢。
如果您添加了子视图控制器,那么您只需使用 self.parent 即可访问。确保将它放入 if let 和 cast
if let parent = self.parent as? ParentViewController {
parent.resetItemsCollectionView()
}
Run Code Online (Sandbox Code Playgroud)
如果您在另一个视图控制器上嵌入了视图控制器,则可以通过多种方式向其父视图控制器发送消息。
var在子级中声明父级的类型,并在prepare(for segue: UIStoryboardSegue, sender: Any?)函数上分配父级,并调用父级的任何公共方法。prepare(for segue: UIStoryboardSegue, sender: Any?),并在需要时调用协议方法。NotificationCenter子级上,然后观察父级上的通知即可。的文档NotificationCenter,在这里您可以找到使用它的简短示例。希望这可以帮助!
PS:你也可以在父vc中观察子属性,如果你想要这样,我可以解释。
| 归档时间: |
|
| 查看次数: |
4056 次 |
| 最近记录: |