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: Jim Murry <email@hidden>
- Date: Sat, 5 Jan 2008 17:24:54 -0800
Hi Jess,
I had realized that I was creating multiple instances of "Controller"
and I know that I was not using File's Owner properly for this
particular problem. I meant to state that I knew that this was not
the "correct way", but it did work while trying to reduce nib size,
make controllers portable while learning how to communicate between
nib's and eliminate the circular initialization.
Thanks Jim
On Jan 4, 2008, at 11:44 AM, Jonathan Hess wrote:
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