iOS-代理托付的使用
#import "Rigester_ViewController.h"
#import "Rigester_ViewController.h"
@interface Rigester_ViewController ()
@end
@implementation Rigester_ViewController
*
正向传值能够用属性
反向传值代理Block
代理:又叫托付
自己不能办得事托付给别人去干
UIAlertView,UITextField 都使用了代理
写代理的步骤:
// 须要代理,托付的人
1.声明代理里面的协议方法(@protocol)
2.声明协议的属性
3.什么时候须要触发这个代理方法
4.通过协议的属性调用代理方法(托付)
// 代理者。被托付的人须要做的事
5.导入协议
6.在初始化有代理方法的对象的地方
挂上代理(代理者响应代理)
7.写上代理方法
等待被运行
*/
- (void)viewDidLoad {
[super viewDidLoad];
self.title = _titleName;
UIButton *rigesterButton = [UIButton buttonWithType:UIButtonTypeCustom];
rigesterButton.frame = CGRectMake(150, 550, 100, 50);
[self.view addSubview:rigesterButton];
rigesterButton.backgroundColor = [UIColor orangeColor];
rigesterButton.showsTouchWhenHighlighted = YES;
rigesterButton.layer.cornerRadius = 10;
[rigesterButton setTitle:@"注冊" forState:UIControlStateNormal];
[rigesterButton addTarget:self action:@selector(toRigester) forControlEvents:UIControlEventTouchUpInside ];
}
//什么时候触发这个代理方法
- (void)toRigester
{
[self.navigationController popViewControllerAnimated:YES];
// 4.通过协议的属性调用代理的方法
[self.delegate toLoginWithName:@"JZQ"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
@interface Rigester_ViewController ()
@end
@implementation Rigester_ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = _titleName;
UIButton *rigesterButton = [UIButton buttonWithType:UIButtonTypeCustom];
rigesterButton.frame = CGRectMake(150, 550, 100, 50);
[self.view addSubview:rigesterButton];
rigesterButton.backgroundColor = [UIColor orangeColor];
rigesterButton.showsTouchWhenHighlighted = YES;
rigesterButton.layer.cornerRadius = 10;
[rigesterButton setTitle:@"注冊" forState:UIControlStateNormal];
[rigesterButton addTarget:self action:@selector(toRigester) forControlEvents:UIControlEventTouchUpInside ];
}
//什么时候触发这个代理方法
- (void)toRigester
{
[self.navigationController popViewControllerAnimated:YES];
// 4.通过协议的属性调用代理的方法
[self.delegate toLoginWithName:@"JZQ"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
iOS-代理托付的使用的更多相关文章
- QF——iOS代理模式
iOS的代理模式: A要完成某个功能,它可以自己完成,但有时出于一些原因,不方便自己完成.这时A可以委托B来帮其完成此功能,即由B代理完成.但是这个功能不是让B随随便便任其完成.此时,会有一个协议文件 ...
- iOS代理模式
iOS代理模式的简单理解:当一个对象无法直接获取到另一个对象的指针,又希望对那个变量进行一些操作时,可以使用代理模式. 代理主要由三部分组成: (1)协议:用来指定代理双方可以做什么,必须做什么. ( ...
- 你真的了解iOS代理设计模式吗?
在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数.这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识.我会通过这些方面的知识,带大 ...
- iOS 代理反向传值
在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳转到界面B,在界面B的 ...
- 【转】你真的了解iOS代理设计模式吗?
转自:http://www.cocoachina.com/ios/20160317/15696.html 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递 ...
- IOS 代理的简单实现
原文 http://www.cnblogs.com/lovekarri/archive/2012/03/04/2379197.html 昨天做了一个demo,用到了简单代理. delegate是ios ...
- iOS代理模式(delegate)的使用
前言: 代理模式是iOS中非常重要的一个模式,iOS SDK中的系统控件几乎都用到了代理模式.代理模式用来处理事件监听.参数传递功能. 协议创建(Protocol): 可手打如下代码,或者在代码块里面 ...
- iOS 代理 重定向消息 forwardInvocation
今天简单研究一下iOS的重定向消息forwardInvocation: 首先看看Invocation类: @interface NSInvocation : NSObject { @private _ ...
- iOS 代理设计模式
在项目中经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式传递一些参数. 在项目中,刚开始我是用一些代理来传递参数的,但是慢慢觉得代理的代码比较block多,所以就更多的使用 ...
- fiddler 进行Android/IOS代理配置抓包
1.准备:Android+IOS设备 下载:fiddler抓包工具,不是最新版的链接: 链接:https://pan.baidu.com/s/1BaBfu2H4xgpsh1wmkfC8aQ ...
随机推荐
- 八、 Java程序初始化的顺序(一)
今天在写构造器方法的时候,遇到了一个小问题,由这个问题引发了一连串的思考,在一个Java类中变量与类的初始化执行顺序是什么样的呢?## 发现问题 class Student{ private Stri ...
- flashcache 介绍
rpm: flashcache-utils-0.0-4.1.el6.x86_64 kmod-flashcache-0.0-3.el6.x86_64 基本介绍: Flashcache是Facebook技 ...
- bjtu 1846. Infinity的装备[状压dp+dfs/bfs]
https://citel.bjtu.edu.cn/acm/oj/problem/1846 1846. Infinity的装备 时间限制 1000 ms 内存限制 64 MB 题目描述 “测试服终于下 ...
- Zabbix4.0安装与入门及常见配置
1.安装zabbix-server 环境: 10.0.0.50 zabbix-server 10.0.0.51 zabbix-web 10.0.0.52 zabbix-agent yum -y ins ...
- luogu P1304 哥德巴赫猜想
题目描述 输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想. (N为偶数). 如果一个数,例如10,则输出第一个加数相比其他解法最小的方案.如10=3+7=5+5,则10=5+ ...
- CodeForces - 103D Time to Raid Cowavans
Discription As you know, the most intelligent beings on the Earth are, of course, cows. This conclus ...
- SELinux下更改mysql端口
默认情况下 mysql更改端口后是不能通过selinux的 提示启动错误,那么首先就要看mysql的错误日志 可是我不知道mysql错误日志的位置 首先,更改selinux的模式为passive 然后 ...
- require_once(): Failed opening required '/var/www/config/config.php' (include_path='.:') in /var/www/vendor/forkiss/pharest/src/Pharest/Register/Register.php on line 10
环境 docker环境 错误 [Tue Jun 18 18:43:26 2019] 127.0.0.1:53980 [500]: /index.php - require_once(): Failed ...
- If Value Exists Then Query Else Allow Create New in Oracle Forms An Example
An example given below for Oracle Forms, when a value exists then execute query for that value to di ...
- Android设计中的尺寸问题
Android把屏幕大小分成四种:small, normal, large, xlarge; 屏幕密度分成:low(ldpi), medium(mdpi), high(hdpi), extra hig ...