UINavigationController:导航控制器.是iOS中提供的多视图控制器,用来管理多个视图控制器,而且视图控制器之间存在依赖关系.本篇文章通过一个小例子来讲述界面间通信的方法.先看效果图:
看到效果图,我们能看出,它利用了导航控制器来控制视图的切换,以及传值等问题.而在这一篇文章中,我主要为大家介绍下如何用自定义代理模式来从"设置"视图中,把两个输入框中的数值取出来.并在计算器视图中得到计算结果,并显示.
首先,我们需要创建两个视图控制器,一个是计算机视图控制器,一个是设置视图控制器.然后再AppDelegate.m文件中定义一个导航控制器,来管理这两个视图控制器.代码如下:
关于UINavigationController的知识,这里不再详细说明.先布局计算器视图(在计算器视图控制器中):
接下来,布局设置视图.(关于一些控件的基本知识,这里不再详细赘述)
布局完成后,我们开始用自定义代理的方法来实现效果图的功能.
1.定义协议.对于这个,我们需要再设置视图的.h文件中,添加自定义协议,以及协议的方法,该方法用来获取设置视图两个输入框的数值,返回给计算器视图.
2.定义代理属性,用来存储代理属性.
3.指定代理.我们需要指定前面的那个界面视图控制器(即计算器视图控制器)为代理.
4.服从协议
5.在服从协议的界面对协议中的方法,进行实现.从这个方法中得到设置界面的两个输入框里面输入的数值.从而在本界面将要出现之前,计算出结果,并把结果标签重新赋值.
6.让代理执行方法.在设置界面点击计算按钮时,返回计算器界面之前,让代理执行方法
最后一步就是,在计算器视图即将出现时,改变计算器界面标签的结果.
效果图中键盘退出,请参考我的文章,键盘退出的内容.本篇根据代理方法的这六步就可以完成后一个界面向前一个界面传值.