Delegate使用方法
在程序中我们往往需要两个视图之间传值,用delegate可以解决这个问题。
(1)定义delegate
#import <UIKit/UIKit.h>@protocol SetPhotoDelegate <NSObject>- (void)setPhoto:(UIImage *)photo;@end@interface PhotoDelegate : NSObject@end
(2)在代理人的.h文件中声明遵守该协议
#import "PhotoDelegate.h"@interface ViewController : UIViewController<SetPhotoDelegate>
然后在.m文件中实现协议中的方法
- (void)setPhoto:(UIImage *)photo
{//委托人实现委托方法//显示照片self.firstImageView.image = photo;
}
最后在初始化委托人的地方,将代理人设置为自己
PhotoPickerViewController *photoPicker = [self.storyboard instantiateViewControllerWithIdentifier:@"PhotoPicker"];//将自己设为PhotoPickerViewController的委托人
photoPicker.delegate = self;[self presentViewController:photoPicker animated:YES completion:NULL];
(3)在委托人头文件文件中定义
#import <UIKit/UIKit.h>
#import "PhotoDelegate.h"@interface PhotoPickerViewController : UIViewController//这是用assign防止引起循环引用
@property(nonatomic, assign) NSObject<SetPhotoDelegate> * delegate;@end
调用代理方法
- (IBAction)clickDoneButton:(id)sender
{//通过delegate调用代理方法[self.delegate setPhoto:selectedImage];[self dismissViewControllerAnimated:YES completion:nil];
}
Delegate使用方法相关推荐
- 在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...
最近的项目遇到了网络请求,需要在请求完成后回调delegate的方法.然而回调时经常遇到这种情况:delegate已经被释放,这时调用其方法则会引起crash. objc的runtime中有两种判断类 ...
- Protocol与Delegate 使用方法详解
你要知道的KVC.KVO.Delegate.Notification都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/78224 ...
- delegate 委托方法
一先定义一个委托方法 ---------第一个类XX //定议委托 public event ordinary Ordinary; //定议委托方法 public delegate void ordi ...
- new,virtual,override,interface,delegate,event-------------C#——方法实现总结
C#--方法实现总结 本文分两部分来写,第一部分:C#方法实现的理解与问题,第二部分:C#中方法实现的种类. 第一部分:C#方法实现的理解与问题 理解: 1. 使用virtual和override关键 ...
- delegate使用方法C#(Demo)
老鸟路线: 无返回值: Control 控件父类 namespace System {[__DynamicallyInvokable]public delegate void Action< ...
- [C#] Delegate, Multicase delegate, Event
声明:这篇博客翻译自:https://www.codeproject.com/Articles/1061085/Delegates-Multicast-delegates-and-Events-in- ...
- Delegate成员变量和Event的区别
上周五有同事问了我一个问题:Delegate和Event有什么区别?具体来说在设计一个类的时候,声明一个事件(Event)和声明一个Delegate类型的成员变量有啥区别. 我的第一反应是没啥区别,虽 ...
- 用 C# 做组件设计时的事件实现方法讨论
事件,其实就是将物体的某个过程处理通过委托(delegate, 也就是函数指针) 的方式公开给外部的自定义函数处理. C# 可以使用多播委托,但实际上一般情况下只需要用到单播. 事件需要通过调用到那个 ...
- jQuery on()方法绑定动态元素的点击事件无效
之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态 ...
最新文章
- 媲美光纤!WiFi传输速度已可达100Gbps
- 英国推6.5亿英镑网络安全战略 强化安全屏障
- 牛客练习赛7 E 珂朵莉的数列
- 解密微信小程序Java登录流程(ssm实现具体功能)
- SaaS权限控制:设计思路和表分析
- C#类类型“.NET技术”
- Grafana展示DNS解析延时
- Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类
- android自动登录_游戏社区App (三):客户端与服务端的加密处理 和 登录
- laravel input值必须不等于0_【第十一期】实现 Javascript 版本的 Laravel 风格参数验证器...
- 家庭智能网络防盗及远程实时监控系统
- 华为交换机配置时区_华为交换机配置命令
- linux/windows_vscode_配置mingw的C/C++环境(by official doc)/一些可能遇到的问题和对策)/vscode中文输出乱码问题
- python上传文件到onedrive_python-onedrive使用教程【linux备份至onedrive】 | C/C++程序员之家...
- 实现页面上方实现输入关键字搜索出关联关键词内容的功能
- 生日快乐程序_「秒福」小程序:送祝福,2020我们不一样
- 计算机java用什么收题_JAVA是一种______。 A.计算机语言 B.计算机没备 C.数据库 D.应用软件...
- 推荐!最新机器学习、深度学习绘图模板.ppt
- 四旋翼无人机学习第1节--准备工作
- 代码改变我的命,我要用代码改变100万女性的命