从UITableViewCell调用ViewController中的函数

sha*_*awg 6 uitableview ios swift

我怎样才能调用的函数ViewController,从一个自定义的tableview细胞UITableViewViewController(使用SWIFT)?

Adn*_*tab 10

你可以用很少的方法做到这一点

  1. 委托(创建协议委托uitableViewcell)将视图控制器设置为委托,UITabelVeiwCell然后从单元调用self.delegate.whatEverDeelgate()
  2. 从单元格发布通知并在视图控制器视图中注册该通知的观察者NSNotificationCenter.defaultCenter().addObserver(self, selector: "nameOfSelector", name: "Name Of Notification", object: nil),然后从tableView单元格postNotification注册,但请确保您还要删除Observer,请访问此链接以获取更多详细信息
  3. 在UITableViewCell中保持viewController的weakReference,意味着创建一个属性@weak var viewController:YourViewcontroller并使用它来调用视图控制器上的方法(不推荐)
  4. 在关键路径上添加观察者,即KVO(当属性更改其值时,将在视图控制器中调用方法)对于您的方案可能不是必需的


Swi*_*y89 5

从您的手机发布通知:

NSNotificationCenter.defaultCenter().postNotificationName("notificationName", object: nil)
Run Code Online (Sandbox Code Playgroud)

然后在你的 viewController 中监听它:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "functionToCall", name: "notificationName", object: nil)
Run Code Online (Sandbox Code Playgroud)

确保在 viewController 中定义新函数:

func functionToCall() {
    //This function will be called when you post the notification
}
Run Code Online (Sandbox Code Playgroud)