如何实现协议传值

原创 2015年07月07日 10:13:43

传值的方式一共有5种,先看下怎么协议传值。


我们要从cityEnvironnebtViewController.m 中传值到MainViewController.m 中,在cityEnvironnebtViewController.h中定义一个协议

@protocol cityEnvironnebtViewControllerDelegate <NSObject>

-(void)changeValue:(NSString *)value;

@end

@interface cityEnvironnebtViewController : UIViewController<UITableViewDelegate,UITableViewDataSource,UISearchBarDelegate,UISearchDisplayDelegate>

@property (nonatomic, unsafe_unretained) id<cityEnvironnebtViewControllerDelegate> delegate;
@end

我是要从cityEnvironnebtViewController.m中的表格 某一行中 传出一个行中的值

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *str = self.dataList[indexPath.row];
    [self.delegate changeValue:str];
    [self dismissViewControllerAnimated:YES completion:nil];
}

然后回到MainViewController.h   中     #import "cityEnvironnebtViewController.h"  再
@interface MainViewController : UIViewController<UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,cityEnvironnebtViewControllerDelegate>

连接代理 一定要在 页面跳转的地方

-(void)cityButtonAction{
  
    cityViewController *cityVC = [[cityViewController alloc]init];
    [[QHSliderViewController sharedSliderController]presentViewController:cityVC animated:YES completion:nil];
}

在MainViewController.m 实现代理 必须实现的方法

-(void)changeValue:(NSString *)value{
    NSString * str = value;
    [self.cityArr addObject:str];
}

这样就实现了 从一个界面取出表中的数据  再放到另一个界面中的 表中 



相关文章推荐

swift 用协议实现代理传值功能

1.功能简介 RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口。在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootView...

swift 用协议实现代理传值功能

1.功能简介 RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口。在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootVie...

iOS 协议传值模版

  • 2014年11月06日 14:51
  • 181KB
  • 下载

iOS 开发之协议-代理传值

刚开始做iOS开发的时候,对 protocol、delegate 的理解一直都是晕晕乎乎一知半解的状态,不知道两个UIViewController之间怎么进行传值。 面试过几个童鞋,问道怎么用 ...

反向传值(协议代理)

  • 2015年08月24日 21:15
  • 130KB
  • 下载

自定义协议protocol(delegate)传值的步骤

1、在需要传值给其他类的类头文件中定义一个协议。 @protocol stringDelegate -(void)textField:(NSString *)sender; @end 2、在该...

iOS开发之协议:代理传值

刚开始做iOS开发的时候,对 protocol、delegate 的理解一直都是晕晕乎乎一知半解的状态,不知道两个UIViewController之间怎么进行传值。 面试过几个童鞋,问道怎么用 de...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实现协议传值
举报原因:
原因补充:

(最多只允许输入30个字)