I believe in source code. UI design is best in an interactive environment, but everything else about software can and should be expressed in human-readable text.
In iOS programming, you can't do everything in source code. Some of your work has to be done with mouse gestures in Interface Builder. You cannot link controls to events or variables in source code; you must use mouse gestures.
To read a control's data, set its text, or change its appearance programmatically, the control must be connected to a variable of the correct type declared with the IBOutlet modifier.
To respond to an event in a control, a procedure declared with the IBAction modifier must be connected to the event.
The only way to accomplish either of these things is to use a mouse to draw a line between the "File's owner" icon and the event or control of interest. "Fle's owner" represents your view controller.
To link an event to an action: drag from event (e.g. Touch Up Inside) to File's Owner and select IBAction.
To link a control to an outlet: control-drag from File's Owner to the control and select IBOutlet.
Here are examples:
To link an event (Touch Up Inside) to an action, drag from the event in the inspector to File's Owner:
When the mouse button is released you'll see a list of IBActions declared in the view controller. Pick one to be called when the event occurs.
To link a control to an outlet, control-drag from File's Owner to the control:
When you release the mouse button you'll see a list of IBOutlets in the view controller. Pick one to use to access this control.
Overall, this is a reasonably convenient way to create these connections, at least for simple applications. But there really should be a human-readable file in a simple, easy to edit format (not XML) to express these connections and make maintenance easier. Am I missing something? I can't find anything like that in the application build directory.