0

我使用 Xcode 4 为 iPad 开发一个项目。

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

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

如何从 TextFieldDelegate 引用主视图控制器的属性(到 UITextField)(例如将值分配给双精度值)?

谢谢你。

4

1 回答 1

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忘记了一些'*'

于 2012-06-25T12:38:30.333 回答