zoukankan      html  css  js  c++  java
  • IOS 委托代理(delegate)实现页面传值

    LvesLi原创,转载请注明原文链接谢谢  http://www.androiddev.net/lvesli_delegate/

     委托是指给一个对象提供机会对另一对象中的变化做出反应或者相应另一个对象的行为。其基本思想是协同解决问题。

    在程序中:一般情况下

    1.委托需要做的工作有:

         1.1定义协议与方法

        1.2声明委托变量

         1.3设置代理

         1.4通过委托变量调用委托方法

    2.代理需要做的工作有:

         2.1遵循协议

         2.2实现委托方法

    下面讲解一下使用委托实现页面传值的解决方法:

    加入我们有两个ViewController 分别为:ViewController和 TrendViewController

    一 .需求:

    我们要实现这样一个功能,当点击ViewController视图上的一个按钮的时候立刻跳转到TrendViewController,并且把一个String字符串传递过去。

    二.解决方案:

    1.在ViewController.h文件的最上边声明协议如下:

    1 @protocol PassTrendValueDelegate
    2 -(void)passTrendValues:(NSString *)values;//1.1定义协议与方法
    3 @end

    2.继续在ViewController.h中声明一个委托变量

    1 ///1.定义向趋势页面传值的委托变量
    2 @property (retain,nonatomic) id <PassTrendValueDelegate> trendDelegate;

    3.进入ViewController.m文件在点击按钮事件函数中,设置代理

    1 #pragma mark 点击趋势按钮
    2 -(void)trendBtnClick{
    3     //create the view
    4     TrendViewController *trendViewController = [[TrendViewController alloc] initWithNibName:@"TrendViewController" bundle:nil];
    5  
    6     self.trendDelegate=trendViewController; //设置代理
    7     [self.trendDelegate passTrendValues:@"Lves李兴乐"];
    8 //页面跳转 省
    9 }

    4.进入TrendViewController.h ,引用ViewController的头文件,并添加代理协议如下:

    1 #import "ViewController.h"
    2  
    3 @interface TrendViewController : UIViewController<PassTrendValueDelegate>{
    4  
    5 }
    6 @end

    5.实现代理函数:

    1 #pragma mark 实现传值协议方法
    2 -(void)passTrendValues:(NSString *)values{
    3     NSLog(@"values:::%@",values);
    4  
    5 }

    运行一下 OK.

    实现页面传值的方法还有:

    1.通知

    2.方法

    3.代理方法

    4.SharedApplication

    5.NSUserdefault

    6.通过一个单例的class来传递

  • 相关阅读:
    常规渗透:没遇到过的anquan狗
    SQLi-db 批量注入工具+教程
    国外整理的一套在线渗透测试资源合集
    重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞
    MS15-051 修正版Exploit(Webshell可用)
    网站渗透常用到的Python小脚本
    项目<<魔兽登录系统>>
    第七章:存储过程
    第六章:事务,视图和索引
    SQL高级查询:嵌套和分页
  • 原文地址:https://www.cnblogs.com/stephen-init/p/4252031.html
Copyright © 2011-2022 走看看