Delegate

*协议传值步骤(6步):
1.由第二个页面制定一个协议,用来命令前一个页面执行方法
2.设置代理人属性
3.让第二页面的代理人(delegate)执行规定的协议方法
4.在使用协议之前,必须要签订协议,由 mainViewController 签订
5.指定第一页为第二页的代理人
6.由第一页实现协议方法

一、在 AppDelegate.m 中引新建视图控制器的头文件 #import “MainViewController.h” 并创建添加导航栏控制器
这里写图片描述

二、在 MainViewController 视图控制器的 .m 文件中引下一个视图控制器头文件 #import “SecondViewController.h” ,在 SecondViewController 视图控制器的 .h 文件中完成协议传值的前两步
这里写图片描述

在 .m 中创建 UITextField 文本输入框和 UIButton 在 button 的方法中实现协议中的第三步
这里写图片描述

这里写图片描述

在 MainViewController.m 文件中签订协议,完成协议传值的第四步
这里写图片描述

创建 UIButton
这里写图片描述

在UIButton的方法中实现协议传值的第五步
这里写图片描述

实现协议方法,由第二个页面中 UITextField 中的输入的值作为第一个页面 UIButton 的标题,完成协议传值的最后一步
这里写图片描述

### 委托(Delegate)的概念 在编程领域中,委托是一种类型安全的功能指针,它允许对象之间递方法调用。具体来说,在 C# 中,委托被定义为一种引用方法的类型。通过声明一个委托类型的变量,可以将该变量绑定到某个特定的方法上,并可以通过这个变量来调用所绑定的方法[^3]。 委托的核心特性在于其能够封装方法签名的能力,这意味着它可以指向任何具有相同参数列表和返回类型的方法。这种灵活性使得委托成为实现回调机制的理想工具之一。 ### 使用委托的方式 以下是关于如何创建并使用委托的一个简单例子: #### 定义委托 首先需要定义一个新的委托类型,指定它的返回以及参数列表: ```csharp public delegate int MathOperation(int x, int y); ``` 上述代码片段展示了 `MathOperation` 这一委托类型的定义过程,表明此委托将会用于表示接受两个整数作为输入参数,并返回一个整数的结果的方法。 #### 实现方法并与委托关联 接着编写一些实际操作函数供后续测试使用,比如加法运算与减法运算这两个基础算术逻辑: ```csharp public class Operations { public static int Add(int x, int y){ return (x + y); } public static int Subtract(int x, int y){ return (x - y); } } ``` 随后实例化之前自定義好的委派類型變量並賦予具體函數參考: ```csharp class Program{ static void Main(string[] args) { // 创建委托实例并将Add() 方法赋给它 MathOperation operation = new MathOperation(Operations.Add); Console.WriteLine("Result of addition: " + operation(7, 3)); // 更改委托实例以指向Subtract() 方法 operation = new MathOperation(Operations.Subtract); Console.WriteLine("Result of subtraction: " + operation(7, 3)); } } ``` 以上程序先將加法功能綁定至operation物件內執行後輸出結果;再改變為減法運作模式重複進行測試與展示。 ### 注意事项 尽管这里仅演示了静态成员之间的交互情况,但实际上也可以让实例方法参与其中——只需按照常规方式入相应的类实例即可完成整个流程设置工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值