Delegate is nothing more than a way for iOS app objects to communicate with one another. Delegation can be seen as a basic method of connecting items and allowing them to communicate with one another. To put it another way, a delegate lets one object transmit a message to another when an event occurs. Let's look at an example from actual life.
Assume there is a five-counter office. You walk into the office and proceed to counter 1 to fill out some paperwork.
Now your information must go via a mechanism that counters 3 understands but counter 1 does not. So counter 1 will instruct you to wait a while and then transmit your information to counter 3 to finish the procedure. Counter 3 is the delegate in this scenario who handles your events and is referred to by counter 1. After counter 3 has finished processing your data, it sends the message to counter 1 indicating that the process is finished and that you can now proceed.