To get around needing awakeFromNib: called in a certain order, you could either move some initialization to initWithCoder: or initWithFrame: (as long as it doesn't depend on outlets being connected), or implement an ordering system, maybe with every object registers with the app controller from awakeFromNib and then is initialized once every object has registered.
by Justin — Sep 18