我是新的iOS开发人员。
我有2个viewcontroller,如下面的2张图片(我将其称为VC1和VC2):
VC1:
VC2是打印机列表:
现在我想每次在VC2中选择一个单元格,然后按右上角的右栏按钮,该单元格的文本标签将发送到VC1并显示,而不是显示EP-806A
标签,我已经在互联网上进行搜索,发现解决方案是写一个传递数据的委托。但是我不知道该怎么写。有谁可以帮助我吗?
最佳答案
1st在VC2中,您必须创建委托
@protocol VC2Delegate;
@interface VC2 : UIViewController
@property (nonatomic, weak) id <VC2Delegate> delegate;
@end
@protocol VC2Delegate <NSObject>
@required
- (void)changeToText:(NSString *)text;
@end
@implementation VC2
// this is your "完了" action
- (IBAction)doneAction:(id)sender {
...
[self.delegate changeToText:@"what you want"];
}
@end
2,将委托添加到VC1
@interface VC1 : UIViewController <VC2Delegate>
@end
3,记住将VC2.delegate设置为VC1
VC2 *vc2 = [VC2 new];
vc2.delegate = self;
[self.navigationController pushViewController:vc2 animated:YES];
4,在VC1中实现
changeToText:
@implementation VC1
- (void)changeToText:(NSString *)text {
// change the text here
}
@end
希望它能对您有所帮助。