One possibility: Suppose an IBOutlet container is a singleton object with a function such as:
+ (singletonObject*) sharedInstance { if(!gGlobalSingletonPointer) { gGlobalSingletonPointer = [[singletonObject alloc] init]; } return gGlobalSingletonPointer; }
You create a single object "on demand" if it does not already exist. You store a global pointer to it, as you create it, in this function.
If you also create such an object in InterfaceBuilder and connect its outputs, this object will be created without calling sharedInstance. If you subsequently call sharedInstance, a new object is created (without IBOutlet connections).
The solution is to update the global pointer in the singletonObject init or awakeFromNib function.
Joakim braun
source share