Reputation: 1203
How can I call a function of a ViewController
from a custom tableview cell of a UITableView
in that ViewController
(using SWIFT)?
Upvotes: 8
Views: 8794
Reputation: 14477
There are few ways you can do that
UITabelVeiwCell
and then from cell call self.delegate.whatEverDeelgate()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "nameOfSelector", name: "Name Of Notification", object: nil)
and then from tableView cell postNotification, but make sure you want to removeObserver as well, visit this link for more detail@weak var viewController:YourViewcontroller
and use this to call method on view controller (Not recommended)Upvotes: 11
Reputation: 1680
You can declare a protocol
in your UIableViewCell
class.
Make your ViewController
delegate of this protocol.
On some action from your cell, call this delegate method.
Upvotes: 1
Reputation: 7373
Post a notification from your cell:
NSNotificationCenter.defaultCenter().postNotificationName("notificationName", object: nil)
Then listen out for it in your viewController:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "functionToCall", name: "notificationName", object: nil)
Make sure you define the new function in your viewController:
func functionToCall() {
//This function will be called when you post the notification
}
Upvotes: 5