2012-06-25 2 views
0

я работаю над проектом для IPad с Xcode 4.Обратитесь к основному свойству контроллера представления другого класса

У меня есть главный контроллер со многим UITextField вида.

TextFieldDelegate - отдельный класс в отдельном файле.

Как я могу ссылаться, от TextFieldDelegate до свойства (на UITextField) основного контроллера представления (например, назначить значение двойному)?

спасибо.

ответ

1

В большинстве случаев, если вы хотите использовать отдельный делегат, вам не нужно больше информации, чем то, что передается делегату (параметры метода). Однако, если вы не хотите использовать свой MainViewController в качестве делегата для вашего UITextField, вы можете инициализировать TextFieldDelegate в экземпляре MainViewController и передать ему экземпляр 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' в СОД, и вы должны быть в состоянии ссылаться на свойства MainViewController из экземпляра TextFieldDelegate. Также можно инициировать его в другом месте, пока вы отправляете экземпляр MainViewController в экземпляр TextFieldDelegate.

Редактировать: woups забыли несколько '' '