Use the delegation template. You specify some methods that you want your delegate to implement as a protocol, and the parent view controller implements the protocol. Your children’s controllers can have a delegate property of type id, where MyDelegateProtocol is the protocol you specify. Then, when you want your children to look at the controllers to talk to the parent, you can call the methods specified in the protocol. For example, if a method named 'myMethod' is specified in your protocol, you can call [self.delegate myMethod] in the child view controller.
Using this approach, you can ask your children to request information from the parent. If you want to notify children of something that happened, it is better to use notifications (NSNotification) instead or to force your children to look at controllers to observe some property of their parent.
Check out this Apple tutorial on Working with Protocols for more information on how to use them.
source share