【发布时间】:2015-08-30 15:36:45
【问题描述】:
我有一个 UIView 和一个 UIButton 在 1 个类中创建:“viewClass”。在我的@ class @ class中,我叫viewClas和我需要在mainVc 987654327选中mainVc时,所以我创建了一个protocol。 (我希望这很清楚。)
这是我设置protocol 和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 是什么,而无需我在使用该方法时对其进行定义。
希望这很清楚。如果有人可以更好地解释它,请随时编辑它。如果您需要更多说明,请在 cmets 中询问。
【问题讨论】:
-
你想从哪里传递
NSString到哪里? -
从
myView到mainVC? -
是的。通过
buttonWasClicked方法从myView到mainVC
标签: ios objective-c methods protocols