• ios开发传值方式二:delegate(委托.代理)传值.


    使用delegate传值主要是通过4步进行传值的 (1.定义协议与方法,2.声明委托变量,3.设置代理,4.通过委托变量调用委托方法,)

    本案例是在firstViewController界面上的textFIeld里面输入文字,点击跳转之后,在secondViewController界面上的label里面显示出来再第一个界面输入的文字.

    一.定义协议与方法

    首先在 firstViewController.h 里面定义协议与方法

    1 @protocol ChuanZhiDelegate <NSObject>
    2 
    3 -(void)passWord:(NSString *)values;
    4 
    5 @end

    二.声明委托变量

    继续在firstViewController.h里面 声明委托变量

    1 @property(retain , nonatomic) id<ChuanZhiDelegate> chuanZhiDelegate;

    三.设置代理

    当我们点击提交按钮的时候设置代理 

    1  self.chuanZhiDelegate = secondVC;//设置代理
    2 
    3     [secondVC passWord:str];
    4 [self.navigationController pushViewController:secondVC animated:YES];//界面跳转

    四.通过委托变量调用委托方法

    (在seondViewController里面实现的)

    首先在 secondViewController.h里面 导入firstViewController头文件

    #import "firstViewController.h"

    然后添加

    <ChuanZhiDelegate>

    现在看一下我的secondViewController.h 

    1 #import <UIKit/UIKit.h>
    2 #import "firstViewController.h"
    3 @interface secondViewController : UIViewController<ChuanZhiDelegate>
    4 @property (weak, nonatomic) IBOutlet UILabel *lab;
    5 
    6 @end

    然后我们就可以在.m文件里面调用协议方法

     1 #import "secondViewController.h"
     2 
     3 @interface secondViewController ()
     4 {
     5     NSString * str;
     6 }
     7 
     8 @end
     9 
    10 @implementation secondViewController
    11 - (void)viewDidLoad {
    12     [super viewDidLoad];
    13     _lab.text = str;
    14 }
    15 -(void)passWord:(NSString *)values{
    16     str = values;
    17 }

    就这样就实现了,很简单,不懂得mmm我啊  -_-!(不开森)

  • 相关阅读:
    让应用通过苹果审核出人头地的10个方法
    正则表达式练习 Regex Golf
    Cocos2d-iOS入门知识详解
    Linux C++/Java/Web/OC Socket网络编程
    JAVA-API Dom4J解析xml/OPML & Rome解析RSS & QRCode编码解码
    李开复:做技术还是管理?
    水两道搜索
    利用HttpClient4进行网络通讯
    hdu5698 百度之星2016round2b第3题
    百度之星2016资格赛D,水题
  • 原文地址:https://www.cnblogs.com/JustForHappy/p/5460813.html
Copyright © 2020-2023  润新知