iOS:切换视图时,反向传递数据方法二:代理

简介:

代理:

  1、发送信息的控制器设置一个代理,并自定义一个代理的方法,用来传递数据

  2、接受信息的控制器遵循发送信息的控制器的协议

  3、接受信息的控制器设置发送信息的控制器的代理为自己self

  4、接受信息的控制器实现协议中的方法,即接受数据

 

  首先将控制器通过modal(push)方式联接,同时设置segue的identifier标识,因为这个identifier是与目的控制器唯一的识别的方式,最后再进行代码操作。

1、所有文件:

2、让FirstViewController关联自己的类ViewController(.h/.m)

3、让SecondViewController关联自己的类SecondViewController(.h/.m)

4、设置segue的identifier标识

 

具体代码如下:

FirstViewController控制器关联的ViewController类

复制代码
 1 #import "ViewController.h"
 2 #import "SecondViewController.h"
 3 
 4 @interface ViewController ()<SecondViewControllerDelegate>
 5 @property (weak, nonatomic) IBOutlet UITextField *firstTextField;
 6 
 7 @end
 8 
 9 @implementation ViewController
10 
11 - (void)viewDidLoad {
12     [super viewDidLoad];
13 }
14 
15 //重写该方法,视图切换时,自动调用
16 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
17 {
18     if([segue.identifier isEqualToString:@"modal"])
19     {
20         //获取目的控制器
21         SecondViewController *secondVC = segue.destinationViewController;
22         
23         //正向传数据
24         secondVC.information = self.firstTextField.text;
25         
26         //设置代理
27         secondVC.delegate = self;
28         
29     }
30 }
31 
32 #pragma mark -<SecondViewControllerDelegate>
33 //反向接受信息
34 -(void)FinishedInformation:(SecondViewController *)secondVC andinfo:(NSString *)infos
35 {
36     self.firstTextField.text = infos;
37 }
38 @end
复制代码

SecondViewController控制器关联的SeconViewController类

复制代码
 1 #import "SecondViewController.h"
 2 
 3 @interface SecondViewController ()
 4 @property (weak, nonatomic) IBOutlet UITextField *secondTextField;
 5 
 6 @end
 7 
 8 @implementation SecondViewController
 9 //返回时的触发事件
10 - (IBAction)returnClicked:(UIBarButtonItem *)sender
11 {
12     //反向传递数据
13     [self.delegate FinishedInformation:self andinfo:self.secondTextField.text];
14     
15     //关闭模态窗口
16     [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
17     //[self dismissViewControllerAnimated:YES completion:nil];
18 }
19 
20 - (void)viewDidLoad {
21     [super viewDidLoad];
22     
23     // 显示文本框内容(接受传递过来的数据)
24     self.secondTextField.text = self.information;
25 }
26 
27 @end
复制代码

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!


本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4808528.html,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
334 4
|
9月前
|
JSON JavaScript 安全
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
83 1
|
9月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
263 0
|
9月前
|
存储 监控 iOS开发
iOS应用崩溃了,如何通过崩溃手机连接电脑查找日志方法
在iOS应用开发过程中,调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时,我们可以连接电脑并使用Xcode Console等工具来查看日志。然而,这种方式可能不够方便,并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了极大的便利,本文将详细介绍其功能和使用方法。 克魔助手会提供两种日志,一种是实时的,一种的是崩溃的。(由于崩溃日志的环境很麻烦,目前只展示实时日志操作步骤)
|
9月前
|
存储 iOS开发 开发者
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
135 0
|
6月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
3月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
72 2
|
6月前
|
iOS开发
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
306 0
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
|
6月前
|
iOS开发 开发者
iOS平台RTMP|RTSP播放器如何实时回调YUV数据
我们在做RTMP、RTSP播放器的时候,有开发者需要自己处理拉取到的YUV数据,做二次分析之用,为此,我们做了以下的设计:InitPlayer之后,再调用SmartPlayerStart()接口之前,设置yuv数据回调即可。
|
9月前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
483 0

热门文章

最新文章