ios 简单介绍常用的2种页面传值方式(代理和block)

代理方法的实现:

首先用的设计模式是MVC模式,比如说要让view中按钮的点击方法在controller中实现,可以再view中添加一个代理,如下:

例如ACell中图片点击:

首先在.h中写一个代理协议

@protocol clickPhotoDelegate<NSObject>

-(void)photoClick;

@end

@interface ACell : UITableViewCell

@property(nonatomic,assign)id<clickPhotoDelegate>delegate;

@end

然后在.m中对应的点击方法中:

[_delegate photoClick];

最后在BController中去实现这个代理clickPhotoDelegate

主要要设置代理:ACell.delegate =self;

然后实现这个代理

#pragma mark - 图片点击的代理

-(void)photoClick{};

block回调方法的实现:

场景介绍 A——>B页面,点击B页面的按钮把相应的值传入到A页面(例如A页面需要B页面的名称和ID)

首先在B页面.h中定义一个block

typedef void(^JumpBlock)(NSString *name,NSString *uuid);

@interface A : UIViewController

@property (nonatomic , copy) JumpBlock back ;

@end

然后在A页面push过去的时候

B * ss = [[B alloc]init];

ss.back = ^(NSString *name,NSString *uuid) {

//B页面的值传过来然后是具体的操作

};

[self.navigationController pushViewController:ss animated:YES];

今天主要简单介绍了页面的传值方式,希望对大家有所帮助。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,291评论 30 472
  • iOS开发中,页面传值是很常见的,但是页面传值你究竟知道多少呢?笔者这篇文章就是给大家介绍一下页面传值的具体方式,...
    蒲公英少年阅读 6,495评论 10 44
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,698评论 0 17
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,111评论 2 7