首页 > 代码库 > 代理---视图间数据的传递:标签显示输入的内容【多个视图中】
代理---视图间数据的传递:标签显示输入的内容【多个视图中】
RootViewController.h
#import "ModalViewController.h" @interface RootViewController : UIViewController<ModalViewDelegate>
RootViewController.m
@interface RootViewController () @end @implementation RootViewController { ModalViewController *modalCtrl; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor redColor]; UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 20)]; textLabel.tag = 100; textLabel.backgroundColor = [UIColor orangeColor]; [self.view addSubview:textLabel]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(50, 150, 100, 30); [button setTitle:@"打开" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; modalCtrl = [[ModalViewController alloc] init]; //设置代理对象 modalCtrl.delegate = self; } - (void)buttonAction { [self presentViewController:modalCtrl animated:YES completion:NULL]; } //实现协议方法 - (void)responseData:(NSString *)text { UILabel *label = (UILabel *)[self.view viewWithTag:100]; label.text = text; }
ModalViewController.h
//返回文本数据 - (void)responseData:(NSString *)text; @end @interface ModalViewController : UIViewController <UITextFieldDelegate> @property(nonatomic, assign)id<ModalViewDelegate> delegate;ModalViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor greenColor]; UITextField *textFiled = [[UITextField alloc] initWithFrame:CGRectMake(50, 60, 160, 30)]; textFiled.tag = 100; textFiled.delegate = self; textFiled.borderStyle = UITextBorderStyleRoundedRect; [self.view addSubview:textFiled]; //显示键盘 [textFiled becomeFirstResponder]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(50, 150, 100, 30); [button setTitle:@"返回" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } //按钮点击事件 - (void)buttonAction { [self dismissViewControllerAnimated:YES completion:NULL]; UITextField *field = (UITextField *)[self.view viewWithTag:100]; NSString *text = field.text; //判断代理是否实现了协议方法 if ([self.delegate respondsToSelector:@selector(responseData:)]) { //调用协议方法 [self.delegate responseData:text]; } } //点击return调用的协议方法 - (BOOL)textFieldShouldReturn:(UITextField *)textField { //收起键盘 [textField resignFirstResponder]; return YES; }
代理---视图间数据的传递:标签显示输入的内容【多个视图中】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。