objective-c - Cocoa开发中怎样获得实例化的ViewController类?

浏览:48日期:2023-12-17

问题描述

如图,我在MainMenu.xib中拖入了一个Object,设定成我自己的mainMenuWindowController类,然后把界面元素的Outlet和Action绑定到里面。程序运行的时候会加载这个nib,然后实例化里面的对象现在我想在其他的类里面使用这个对象,我该如何从nib里获取它呢?objective-c - Cocoa开发中怎样获得实例化的ViewController类?

问题解答

回答1:

NSViewController* viewController = [[NSViewController alloc] initWithNibName:@'SomeNibName' bundle:nil];

回答2:

MainMenu.xib一般都有个AppDelegate的实例。先到自动生成的AppDelegate类的头文件里声明一个MainWindowController的IBOutlet,再回MainMenu.xib里,把MainWindowController的实例(蓝色立方体)和刚刚在AppDelegate里声明的IBOutlet连起来就行了。

接着,其余的代码需要访问实例化的MainWindowController,都可以通过AppDelegate的这个IBOutlet property或ivar。当然,要等到-awakeFromNib以后访问才有效。

相关文章: