请参阅另一个类的主视图控制器属性

时间:2012-06-25 12:17:20

标签: objective-c ios5

我使用Xcode 4开发iPad项目。

我有一个带有许多UITextField的主视图控制器。

TextFieldDelegate是单独文件中的单独类。

如何从TextFieldDelegate引用主视图控制器的属性(到UITextField)(例如将值赋给double)?

谢谢。

1 个答案:

答案 0 :(得分:1)

在大多数情况下,如果要使用单独的委托,则不需要比传递给委托的更多信息(方法的参数)。但是,如果您不想将MainViewController用作UITextField的委托,则可以在MainViewController实例中初始化TextFieldDelegate并将其传递给MainViewController实例。

例如,您可以:

#import "MainViewController.h"
@interface TextFieldDelegate<UITextFieldDelegate> {
  MainViewController* mainViewController;
}
@property(nonatomic,retain) MainViewController* mainViewController;
-(id)initWithController:(MainViewController*)controller;
@end  

@implementation TextFieldDelegate
@synthesize mainViewController;
-(id)initWithController:(MainViewController*)controller {
  if(self = [super init]) {
    //some stuff
    self.mainViewController = controller;
  }
  return self;
}
@end

然后在你的MainViewController中:

TextFieldDelegate tfd = [[TextFieldDelegate alloc] initWithController:self];

您只需将TextFields的委托设置为tfd,您就可以从TextFieldDelegate实例引用MainViewController属性。只要将MainViewController实例发送到TextFieldDelegate实例,也可以在其他地方启动它。

编辑:woups忘了一些'*'