如何实现协议传值

原创 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之协议语法实现页面间的传值功能

利用Swift之协议语法实现页面间的传值功能
  • mapboo
  • mapboo
  • 2014年09月28日 17:12
  • 6713

iOS如何实现传值---协议传值

B  ----> A 传值
  • JerryLeeFighting
  • JerryLeeFighting
  • 2014年06月13日 17:48
  • 379

iOS中协议delegate的传值注意点

1、iOS中协议的用途一般是用来进行反向传值,一般步骤如下: 1)声明协议 @protocol ThirdDalegate NSObject> -(void)printNum:(int)nu...
  • reallyWCF
  • reallyWCF
  • 2017年02月18日 16:11
  • 486

iOS协议传值封装总结

大家好,我是亮亮,这是我总结的协议传值封装的方法。
  • liu356337456
  • liu356337456
  • 2016年03月29日 10:26
  • 512

swift3 协议

协议定义了一个方法的蓝图,属性和其他适合特定任务或功能的要求。协议实际上并不提供一个这些要求的实现,它只是描述了一个实现会是什么样子。协议可以通过一个类,结构或枚举提供这些要求的具体实现。满足要求的任...
  • shenhaifeiniao
  • shenhaifeiniao
  • 2017年04月21日 10:48
  • 742

BLOCK传值 协议传值

通过使用Block实现从后往前传值写协议或添加属性@protocol SecondViewControllerDelegate -(void)changeColor; @end @interface ...
  • Graves_Seven
  • Graves_Seven
  • 2015年08月26日 17:47
  • 185

ios 协议传值

协议传值(作为回调比较实用) 如果单单是一个页面跳转传值的话 直接用属性来传值就很快     A--->B 好比说 A 跳转到 B 并且传值  在A页面就直接 b.property = @”hel...
  • LPVSWEI
  • LPVSWEI
  • 2013年10月10日 15:45
  • 652

协议传值

协议传值是从
  • jelly_1992
  • jelly_1992
  • 2014年11月13日 08:47
  • 327

Swift 协议代理的使用和传值

Swift 协议代理的使用和OC的使用步骤是一致.效果图具体使用步骤在SecondViewController里面声明一个协议 1.声明一个协议方法/** * 声明一个协议 */ protoc...
  • zhuming3834
  • zhuming3834
  • 2016年04月28日 22:10
  • 2552

IOS中协议传值

协议传值通常用于界面间的通信. 协议只声明, 不实现 协议是 用来解决IOS中多继承的问题 注:当定义协议delegate时, 将其属性的标识设为assign是为了防止循环拥有,导致释放不了. ...
  • Mel_YZ
  • Mel_YZ
  • 2014年12月23日 19:47
  • 71
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实现协议传值
举报原因:
原因补充:

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