从另一个类访问TableViewController

时间:2012-05-21 16:03:32

标签: objective-c cocoa

我是objective-c的初学者,想要实现一个简单的GUI:带有相应xib的MyMainWindowController包含一个表和一个简单的Add按钮。

@interface MyMainWindowController : NSWindowController
{
}
@end

控制器的实现代码几乎为空(预定义的initWithWindow和windowDidLoad)。 AddressTvc的定义如下:

@interface AddressTvc : NSObject <NSTableViewDataSource>
{
  @private
    IBOutlet NSTableView *myTableView;
    NSMutableArray *list;
}
- (IBAction)add:(id)sender;
@end

这很好用。我可以点击Add按钮,表格中会插入一个新行。

enter image description here

AddressTvc可见时,似乎MyMainWindowController是自动创建的(由IB?)。我想在MyMainWindowControllerAddressTvc的代码中引用一个引用,这样我就可以用后台线程检索的一些数据来填充表格。这应该通过调用- (IBAction)add:(id)sender;方法来完成。

我尝试在AddressTvc内创建MyMainWindowController,但随后对象初始化两次。我确定我必须把它连接到IB的某个地方,但不知道在哪里这样做......

1 个答案:

答案 0 :(得分:1)

MyMainWindowController 类中创建一个可指向表视图控制器类的插座。

E.G。

@interface MyMainWindowController : NSWindowController
{
    IBOutlet AddressTvc *myTVC 
}
@end

然后只需控制+从文件所有者拖动到界面构建器中的表视图控制器的实例,您现在可以在窗口控制器代码中访问它。