• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Outlets Not Connected In awakeFromNib
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Outlets Not Connected In awakeFromNib


  • Subject: Re: Outlets Not Connected In awakeFromNib
  • From: glenn andreas <email@hidden>
  • Date: Wed, 02 Mar 2011 09:53:41 -0600

On Mar 2, 2011, at 3:54 AM, Andreas Grosam wrote:

> I have a very basic custom UIViewController with its own associated nib file. This view controller is the "root view controller" of a Navigation Controller which is itself embedded within a Split View Controller which is defined in another nib - say the main.nib.
>
> Within IB this root view controller has its "Nib Name" property specified, which means that this view controller is defined in an extern nib file.
>
> This scenario is the standard way for defining nibs and view controllers when using a Navigation Controller.
> To illustrate an example for the main.nib:
>
> File's Owner
> First Responder
> Window
> App Delegate
> Split View Controller
>    Navigation Controller
>        Navigation Bar
>        Root View Controller    -> Nib Name = "MyRootViewController.nib"
>    Detail View Controller
>
>
> My root view controller also defines some properly specified outlets - for instance a view which is embedded within the same nib file and referenced via an outlet from the class.
>
> During -awakeFromNib for the root view controller, none of these kind of outlets are connected. This is quite confusing, since the documentation explicitly says otherwise.
>

What's going on is that awakeFromNib is called when the nib containing the object is instantiated.  In this case, it is the main nib (which is where the root view controller "lives").

However, a view controller's nib ("MyRootViewControler.nib") isn't loaded until it is actually needed, at which point the view controller gets "viewLoaded" message, and so, until that time, any connections between the view controller and things loaded from MyRootViewController.nib will be nil.

> During -awakeFromNib for the root view controller, none of these kind of outlets are connected. This is quite confusing, since the documentation explicitly says otherwise.
>

Not exactly - when awakeFromNib is called, all the connections within that nib are connected.  So if root view controller had an "appDelegate" outlet that was connected to the App delegate, that would be set when awakeFromNib was called.  The "Nib Name = MyRootViewController.nib" is only an outlet in the sense that the view controller's nibName ivar will be set to "MyRootViewController.nib" (which it will be during awakeFromNib).

The whole purpose of having separate nibs is to avoid recursively loading everything all at once - if that view is never displayed (say, on a tab bar controller tab that the user never selects), its nib will never be loaded.



Glenn Andreas                      email@hidden
The most merciful thing in the world ... is the inability of the human mind to correlate all its contents - HPL

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Outlets Not Connected In awakeFromNib
      • From: Andreas Grosam <email@hidden>
References: 
 >Outlets Not Connected In awakeFromNib (From: Andreas Grosam <email@hidden>)

  • Prev by Date: Re: Outlets Not Connected In awakeFromNib
  • Next by Date: Re: UIView animation (backgroundColor) + drawRect:
  • Previous by thread: Re: Outlets Not Connected In awakeFromNib
  • Next by thread: Re: Outlets Not Connected In awakeFromNib
  • Index(es):
    • Date
    • Thread