从swift中的childcontroller调用parentController方法

use*_*935 3 ios swift

我正在做一个简单的customtableview项目.我有viewController.swift和customcell.swift文件.我在viewcontroller文件中有一个方法.如何从customcell文件中调用该方法.任何帮助将不胜感激.谢谢提前

Pix*_*dSt 11

以下是完成对象之间通信的几种方法.

  1. 您可以使用委托模式,并基本上将viewcontroller设置为customcell实例的委托.然后,customecell对象将在需要时在委托上调用所需的方法.
  2. 你可以设置一个封闭在调用所需的方法,然后传递封下降到customcell对象使用,当你想从customcell实例执行视图-控制的方法的视图-控制对象.
  3. 您可以使用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")
    }
}
Run Code Online (Sandbox Code Playgroud)

你的孩子看起来像这样:

class Child
{
    weak var delegate : ParentProtocol?

    func callDelegate () {
        delegate?.method()
    }

}
Run Code Online (Sandbox Code Playgroud)