IOS Delegate传值

来源:互联网 发布:任那 知乎 编辑:程序博客网 时间:2024/06/05 11:39

 

ios

  今天听了反向传值,倒是一下子把我给弄懵了!

  原来也听过,但是,没有来得及回顾。今天把原来的代码拿出来之后,发现不仅没有成功,而且还漏洞百出。调试了两个重要的部位之后,程序运行成功了!

  也希望看到这篇文章的朋友,能够得到一些提示,不犯低级性的错误。

需要做的事情:

1.定义两个ViewController,用来传值;

2.在两个界面中,分别设定一个UITextField和一个UIButton。在第一个界面中,UITextField用来显示第二个界面传来的值,这个地方也可以用UILabel来代替;UIButton用来点击推到下一个界面;在第二个界面中,UITextField是用来输入数值的,UIButton是用来返回到上一个界面的。

3.定义UIButton和UITextField,大家肯定都会,我直接在这里写方法了。

4.要定义一个协议,用来约束代理,来实现方法


准备工作

1.先写代理。在这个代理里面,必须得实现transitTheString:方法

2.在第二个界面中,给UIButton关联方法tapButton.将UITextField做成属性,方便在这里取值

正是这里面的respondsToSelector方法,把我给弄懵了。猛地一看,我还以为没有学习过。。如果代理响应了这个方法,则会把值给传递过去。

3.回到第一个界面,需要做两件事情

(1)给UIButton添加方法,用来推到第二个界面在这里面,定义了第二个界面,同时把自己作为第二个界面的代理,最后通过此按钮,推到下一个界面。(我就是在这个地方,忘记设置代理了)

(2)完成代理的方法

做为代理,应该完成代理的方法,这个就是代理的方法,且参数是通过str传递过来的。先是打印了一下str,确定是否有值;然后将这个值赋给第一个界面的UITextField

4.所有应该做的事情就这么结束了。

  其实看起来还是蛮简单的。只是要理清思路,不要着急,不要慌。

  最近越来越感觉基础知识确实很重要。一开始的时候,心里干着急,稳不下心来仔细研究,现在还好一点,至少愿意花功夫来学习。

  这也许和昨天看的文章有关系吧。。“走出自己的安逸区”。。。