Custom Protocol and Delegate

C

Custom protocols and delegate is the very efficient way to passing values to other controller from one controller. If we required pass the value for only one controller in entire project the we should not go for declaring “Global Variable” to pass the values.



Example:  Display PopOver for option selection on button click event which placed on TableViewCell. On option selection make some changes on TableView.



Let’s assume ViewController of tableview is (VC-1) andViewController of  PopOver is (VC-2).

Here the actual process of CODING get started,

create one table view with custom cell on (VC-1) then design for PopOver/ popUp on (VC-2).

Now we have to pass value from  (VC-2) to  (VC-1) so create custom protocol and delegate on  (VC-2) as below

protocol popOverListViewControllerDelegate {

    func getSelectedValueFromPopOverList(str:String)

}

place this above code outside the block of class.

Now declare a variable of delegate inside (VC-2) as below

var delegate : popOverListViewControllerDelegate?

go to option selection event on (VC-2) ie. didSelect method of  popOver table and copy the below code.

this line of code will pass the value to (VC-1)

delegate?.getSelectedValueFromPopOverList(str: arrOptions[indexPath.row])

here is the end of Custom Protocol and Delegate declaration. Let us move to (VC-1) to write the further code.

First of all import the protocol popOverListViewControllerDelegate in (VC-1).

It’s  time to set the delegate, to set the delegate create an instance of (VC-2) and set the delegate as below

let popController = UIStoryboard(name: “Main”, bundle: nil).instantiateViewController(withIdentifier: “popListViewController”) as! popListViewController

  popController.delegate = self

Finally we will get the value which was passed by (VC-2) to (VC-1) using below code.

below code is the actual definition of the delegate which we created/declared in  (VC-2)

func getSelectedValueFromPopOverList(str:String)  {

    print(“I got value which is passed from(VC-2) : \(str)”)

}

 

Here is the Demo Project for this tutorial #HaveFun 🙂

 

 

 

About the author

Shravankumar Gundawar

I am working as an iOS application developer at NanoStuffs Technologies Pvt. Ltd. since 9 months. I have total 2+ years of experience in this technology. Till date worked on more than 7 iOS applications, Includes the categories of shopping,Entertainment,Business etc.
Other than this, i love singing songs & proud to say that won many prizes for solo and duet singing competitions during school and college days.

By Shravankumar Gundawar

Category