Re: Newb: Targeting an instance of a class instantiated by a NIB file
Re: Newb: Targeting an instance of a class instantiated by a NIB file
- Subject: Re: Newb: Targeting an instance of a class instantiated by a NIB file
- From: Brad Gibbs <email@hidden>
- Date: Fri, 12 Sep 2008 14:25:49 -0700
If I'm reading your mail correctly, I've tried that without success.
I have a MainWindowController controlling MainWindow. On
MainWindow.xib is a button which launches another window
(MainMenu,xib) with a window controller (MainMenuWindowController.m).
A couple of NSViewControllers down is a view with the buttons in
question.
I've tried creating an instance of MainWindowController in that view's
NSViewController (declaring MainWindowController
*iMainWindowController in the interface, using @property and
@synthesize and then calling iMainWindowController =
[[MainWindowController alloc] init] in the NSViewController's
implementation section).
I can tell the method is being called by an NSLog statement posted to
the Console, but the view doesn't swap in. I'm assuming this is
because I've programmatically created another instance of the
MainWindowController class in the NSViewController and I'm targeting
that instance with the buttons, rather than the instance created at
launch, which is controlling the MainWindow. Calling a method on the
MainWindowController instance created by the NSViewController would
still cause the log file to print the message without swapping in the
view on the instance of the Main Window created when I launch the
app. So, I'm left to assume that I need to target the instance
created at launch.
According to the Event Handling Guide:
If an NSWindowController object is managing the window, it becomes
the final next responder.
Is this going to be a problem, since the NSViewController with the
button code is underneath its own NSWindowController? Would the
responder chain just stop there and so that messages wouldn't make
their way over and up to the MainWindowController?
Thanks again.
Brad
On Sep 12, 2008, at 1:38 PM, Jonathan Hess wrote:
Hey Brad -
So it sounds like you have two controllers, A, and B, and they each
have their own NIB. Sound like you're on the right track. Now you
want to have an action in B's NIB affect controller A. Does
controller B have an instance variable, or other mechanism, for
referencing controller A? If so, you could put an action method on
controller B and have that be the target of your button in NIB B.
The implementation of that action can then call a method on
controller A.
Jon Hess
On Sep 12, 2008, at 12:17 PM, Brad Gibbs wrote:
I'm working on an application with a single main window and a
number of views and view controllers. I have a navigation window
that pops up and allows users to set preferences and also switch
views in the main portion of the app's main window.
I want to write the code to switch views in the
MainWindowController.m, since it controls the window that contains
the views that will be switched. But, the buttons that control the
view switching are located on a panel being controlled by a
different view controller.
The main window and its window controller are instantiated when the
program is launched. Creating another instance in the view
controller that contains the buttons (either by adding a
MainWindowController object in IB or by creating another instance
in the view controller code) doesn't target the existing main
window, and, therefore, doesn't cause views to be switched in the
main window that is instantiated on launch. So, how can I target
the instance of the main window controller that was instantiated on
launch from the NSViewController controlling the view with the view
switching buttons, in order to switch views? Or should I be doing
something else entirely?
Thanks.
Brad
_______________________________________________
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