从swift中的childcontroller调用parentController方法
我正在做一个简单的customtableview项目。我有viewController.swift和customcell.swift文件。我在viewcontroller文件中有一个方法。如何从customcell文件调用该方法。将提供任何帮助。谢谢提前
以下是完成对象之间通信的几种方法。
- 您可以使用委托模式,并基本上将viewcontroller设置为customcell实例的委托。 然后,customecell对象将在需要时在委托上调用所需的方法。
- 您可以在viewcontroller对象中设置一个调用所需方法的闭包,然后将该闭包传递给customcell对象,以便在您想要从customcell实例执行viewcontroller的方法时使用。
- 您可以使用NSNotifications从customcell与viewcontroller进行通信。 customcell将“发布”通知,并且视图控制器(在注册“观察”该特定通知之后)可以调用需要执行的任何方法。
还有其他方法可以解决这个问题,但这些是我想到的前三个方法。 希望能给你一些关于如何进行的想法。
以下是委托模式的简单示例。
你的父母看起来像这样:
protocol ParentProtocol : class { func method() } class Parent { var child : Child init () { child = Child() child.delegate = self } } extension Parent : ParentProtocol { func method() { println("Hello") } }
你的孩子看起来像这样:
class Child { weak var delegate : ParentProtocol? func callDelegate () { delegate?.method() } }