How do I access the data member variables of other view controllers?
It is possible to access the UILabel of another view controller, but not needed. This will lead you to very difficult mistakes. Any IBOutlet can go null at amazing moments when memory is low. You cannot link directly to the UI elements of an object.
Your initial idea of ββaccessing data (model) objects is correct, although usually you'd be better off just initializing both view controllers with the same model object. For example, let's say you have a status message that you want to display in two different UILabels in two different view controllers. Rather than having one view controller requesting another view controller, it is better to have a model class such as Status in which both pointers have a pointer. Whenever it changes, they change their UILabel.
Your best bet is to post a notification (StatusDidChangeNotification) and just let anyone who needs it follow it and update their interface accordingly.
You want the UI elements to be very loosely coupled in Cocoa. Otherwise, you end up with hard errors when you do what appears to be a minor UI change.
source to share