I would do it on viewDidLoad. Definitely.
From Apple's documentation:
Discussion
This method is only invoked
when the view property is nil and it
is needed for display. You should not
invoke this method directly.
If you create the view that this view
controller manages programmatically,
then you should override this method
to create your view. The default
implementation creates a UIView object
with no subviews.
However, if you initialize the view
using a nib file—that is, you set
thenibName and nibBundle
properties—then you should not
override this method because the
default implementation already reloads
the nib file. Instead override the
viewDidLoad method to set any
properties after the nib file is
loaded.
In your case, the UIView is being created from the NIB file.