我使用Xcode 4开发iPad项目。
我有一个带有许多UITextField的主视图控制器。
TextFieldDelegate是单独文件中的单独类。
如何从TextFieldDelegate引用主视图控制器的属性(到UITextField)(例如将值赋给double)?
谢谢。
答案 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忘了一些'*'