如何在2 NSWindowController之间传递值

时间:2012-08-09 12:41:23

标签: objective-c cocoa global-variables nswindowcontroller

我试图将数据从一个NSWindowController传递到另一个。 我有2个NSWindowController,它已经被实例化并且它们各自的NIB已经被加载到屏幕中,实际上firstWindowController首先加载,从用户获得一些输入并进行一些计算并将它们保存在几个变量和IBOutlets中。在firstWindowController中的用户操作(NSButton)时,secondWindowController加载第二个Nib窗口。 让我们说:

firstWindowController.h

@class secondWindowController;

@interface firstWindowController : NSWindowController
{
secondWindowController *_secondWindowController;
}
@property long double onedata; 
@property (strong) IBOutlet NSTextField *rZab;
@property (strong) IBOutlet NSTextField *xZab;
@end

在firstWindowController.m中是实例_secondWindowController的代码,在所有@属性的变量和对象中合成并加载相关的nib屏幕。以同样的方式,onedata变量和两个IBOulets都会分配一些值。省略了。

secondWindowController.h

@interface secondeWindowController: NSWindowController
long double newdata;
-(void)getDataFromFirstWC;
@end

secondWindowController.m

#import "firstWindowController.h"
#import "secondWindowController.h"
#import "myAppDelegate.h"

@implementation secondWindowController
-(void)getDataFromFirstWC
{
newdata = 0.0;
newdata = (_firstWindowController.onedata); 
// Compilation fails here...
}
@end

这不编译。 _firstWindowController的实例无法识别??  使用未声明的标识符'_firstWindowController'

_firstWindowController的实例已经在我的应用程序委托中创建,它负责加载第一个窗口nib。

任何帮助完成这项工作?对更多类似问题的其他答案对我没有帮助。

1 个答案:

答案 0 :(得分:0)

您需要在firstWindowController中拥有secondWindowController的实例。试试这个:

在你的seconWindowController.h中:

@class firstWindowController //<-- add this
@interface secondeWindowController: NSWindowController
{
firstWindowController *fwc; //<-- and this
}

long double newdata;
-(void)getDataFromFirstWC;
@end
在你的seconWindowController.m中:

#import "firstWindowController.h"
#import "secondWindowController.h"
#import "myAppDelegate.h"

@implementation secondWindowController
-(void)getDataFromFirstWC {
newdata = 0.0;
newdata = (fwc.onedata); //<-- add this and it should work
NSLog(@"newdata is: %f", newdata);
}
@end

只要我了解您的代码到目前为止,您就不需要在secondWindowController中创建firstWindowController的实例。祝你好运!

相关问题