BlueFish BlueFish - 6 months ago 32
iOS Question

storyboard instantiateViewControllerWithIdentifier not setting IBOutlets

I am using storyboard

instantiateViewControllerWithIdentifier:
and I'm noticing that all the
IBOutlets
I have wired up are still nil. However, the
IBActions
I have wired up work. The view and controller are linked (i.e controller.view is not nil), and if I show the view it displays what I am expecting.

What am I missing?

Here's my setup:


  1. I've got a View Controller defined in my storyboard. I have given it an identifier which is the same identifier I use when invoking
    instantiateViewControllerWithIdentifier:

  2. I've set up the view's owner by clicking on the View Controller (just under First Responder) and under the Identity Inspector set the Custom Class to be the same name as the class I want to wire the view to.

  3. Then I open up Assistant editor, and control dragged the UI elements to create the
    IBOutlets
    and
    IBActions
    .


Answer

The view seems to be initialized properly only after it is accessed first. The problem goes away when calling

[self presentViewController:vc animated:NO completion:nil];

or siply

[vc view];