我有一个UIView
,其中UIButton
创建于1个类中:“viewClass
”。在我的mainVC
课程中,我调用了viewClas
,当我选择button
时,我需要调用mainVc
中的方法,因此我创建了。 (我希望是明确的。)从另一个类别指定变量
下面是我如何设置和delegate
:
viewClass.h
@protocol ViewClassDelegate
-(void)buttonWasClicked;
@end
...
@property (nonatomic, strong) id<ViewClassDelegate> delegate;
viewClass.m
[submitButton addTarget:self action:@selector(submitButtonTapped) forControlEvents: UIControlEventTouchUpInside];
- (void)submitButtonTapped {
[self.delegate buttonWasClicked];
}
mainVC.m
// Imported and called the delegate in mainVC.h. Then in .m I set the delegate
-(void)buttonWasClicked {
// Perform some action
}
有没有办法通过一个NSString
到buttonWasClicked
?我的意思不是这样的:
- (void)buttonWasClicked:(NSString *)myString
因为myString
没有价值,除非我给它分配在mainVC
方法。我想分配它在submitButtonTapped
(这是在myView.m
)。
基本上,我想是这样的:
- (void)textFieldDidBeginEditing:(UITextField *)textField
在该方法中,它知道textField
就是没有我定义它,当我使用该方法。
希望这是显而易见的。如果有人能更好地解释它,请随时编辑它。如果您需要更多解释,请在评论中提问。
您想从哪里传递'NSString'到哪里? –
从'myView'到'mainVC'? –
是的。通过'buttonWasClicked'方法从'myView'到'mainVC' – Jessica