首页 > 代码库 > ios两视图间委托(delegate)传值
ios两视图间委托(delegate)传值
现有两个视图(ViewController,ViewController1),从ViewController中带参数跳转到ViewController1,在ViewController1选中数据后带有效数据后退到ViewController中,委托实现上述功能。
项目:点击下载
一、ViewController主要代码
// 按钮点击事件 -(IBAction)clickSearchBtn:(id)sender { [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; ViewController1 *_viewController = [[[ViewController1 alloc] init] autorelease]; _viewController.delegate = self; _viewController.transText = self.textField.text; [self.navigationController pushViewController:_viewController animated:YES]; } // ViewController1Delegate 的代理方法 -(void)selectData:(NSString*)text{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [self.listArray removeAllObjects]; for (int i=0; i<5; i++) { [self.listArray addObject:[NSString stringWithFormat:@"第%d行数据:%@_%d",i+1,text,arc4random_uniform(100)]]; } dispatch_async(dispatch_get_main_queue(), ^{ [self.dataTableView reloadData]; }); }); }
二、ViewController1主要代码
// ViewController1.h // delegate写在#import之前,否则可能会Delegate Cannot find protocol declaration @protocol ViewController1Delegate; @protocol ViewController1Delegate <NSObject> @optional -(void)selectData:(NSString*)text; @end // ViewController1.m - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if ([self.delegate respondsToSelector:@selector(selectData:)]) { //通过委托协议传值 [self.delegate selectData:[self.listArray objectAtIndex:indexPath.row]]; [self.navigationController popViewControllerAnimated:YES]; } }
ios两视图间委托(delegate)传值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。