Re: Circular initialization of controllers in NIB file
Re: Circular initialization of controllers in NIB file
- Subject: Re: Circular initialization of controllers in NIB file
- From: Jonathan Hess <email@hidden>
- Date: Fri, 4 Jan 2008 11:44:55 -0800
Hey Jim -
I may be confused, but It sounds like you may be misunderstanding the
role of File's Owner. Before was it the case that you had a blue cube
for "Controller" and "Sub-Controller" in each nib? If that's the case,
then you were actually creating many instance of "Controller" and
that's why you weren't seeing the connections you expected on your
actual master controller.
Good Luck -
Jon Hess
On Jan 4, 2008, at 12:46 AM, Jim Murry wrote:
I dealt with this after trying to reduce nib sizes and make various
parts of my program reusable. I found that if I set File's Owner
to my "Main Controller" in these "sub-controller" nib files and then
add a new NSObject that I set the class in the inspector window to
my "sub-controller." This keeps the circular initialization from
occurring, while allowing cross communication between the nib files.
Hope this helps.
On Jan 3, 2008, at 10:16 AM, Nathan Auch wrote:
My application is an installer whose main window consists of a few
controls and an area (NSBox) on which one of several "panels" is
displayed. As the user progresses through the install, theses
panels (custom NSViews) are swapped in and out of the main window.
The logic for some of the panels can be quite complicated so I've
implemented a unique controller for each panel which holds all the
logic pertaining to it.
The main controller holds a pointer to each of the panel
controllers so that it handle swapping the panels. Some of the
panel controllers need to communicate with the main window
controller as well to do things like set the enabled status of the
"Continue" and "Go Back" buttons on the main window.
Thus, the main window controller has an IBOutlet for a panel
controller, and the panel controller has an IBOutlet for the main
window controller. These are both assigned in Interface Builder.
After loading the NIB file, the IBOutlet pointing to the main
window controller from the panel controller is never set (value is
nil). I think this must be because there is a circular dependency
during initialization of the NIB file.
Is this expected behaviour? Can I do something to force the
initialization of both outlets, or do I just need to work around
this in my code? (Working around this shouldn't be difficult, but
I'm new to Cocoa, so I just want to make sure that I correctly
understand what is going on before working around the issue.)
Thanks,
-Nathan
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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