如何通过其他类访问ViewController的属性?

时间:2015-02-04 18:02:36

标签: objective-c properties scope

子类ViewController.m 代码:

@interface ViewController : NSViewController 
@property (assign) IBOutlet NSArrayController *objectArrayController;
@property (assign) IBOutlet NSTableView *objectTable;
@property (weak) IBOutlet NSImageCell *objectImageCell;
@end
  • ViewController.m包含实施标准
  • 我究竟如何从单独的类中访问这些属性?
  • 我是否只包含'ViewController.m'文件,还是在setter/gettor文件中的某个位置声明main.m方法,我可以从项目中的任何文件访问该文件?

2 个答案:

答案 0 :(得分:0)

您需要获取指向包含要引用的属性的视图控制器的特定实例的指针。 (它将用于分配/初始化VC的新副本并尝试访问该属性。)

一旦你有了指针,它就很简单:

SomeType* theCopiedData = theSourceVCPointer.thePropertyIWant;

当然,获取指针有时候是一个挑战 - 它在很多情况下实际上需要思考和计划。

答案 1 :(得分:-1)

您需要做两件事来从另一个类访问属性。

  1. 您还需要确保合成这些属性。你没有表现出来,但我会假设你做到了。

  2. 您需要获取要在其他类中访问的视图控制器的实例。

     ViewController *controller =  (ViewController*)self.window.rootViewController;
    
  3. 此代码仅供您查看根视图。