我使用 Xcode 4 为 iPad 开发一个项目。
我有一个带有许多 UITextField 的主视图控制器。
TextFieldDelegate 是单独文件中的单独类。
如何从 TextFieldDelegate 引用主视图控制器的属性(到 UITextField)(例如将值分配给双精度值)?
谢谢你。
我使用 Xcode 4 为 iPad 开发一个项目。
我有一个带有许多 UITextField 的主视图控制器。
TextFieldDelegate 是单独文件中的单独类。
如何从 TextFieldDelegate 引用主视图控制器的属性(到 UITextField)(例如将值分配给双精度值)?
谢谢你。
在大多数情况下,如果您想使用单独的委托,您不需要比传递给委托的信息(方法的参数)更多的信息。但是,如果您不想将 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忘记了一些'*'