控制器之间的顺传与逆传

在开发过程中,我们很多时候要在两个控制器之间进行值的传递,那么究竟两个控制器之间怎么来传递值呢?下面就给大家简单的介绍一下:

一.顺传也是就当A控制器跳到B控制,我们想把A控制器中的一些数据传递给B控制器,这就是顺传,也就是从A到B顺着传递.首先想了解顺传要先了解一个方法,这个方法就是在A控制器跳转到B控制器之前会调用,这个方法就是:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;

当我们调出这个方法后,就可以得到segue,那么segue是什么呢?segue就是当我们在storyboard中托一个导航控制器的时候会出现一条线如图:

这条线就是segue,UIstoryboardsegue中有三个属性:

//标识符
@property (nonatomic, readonly) NSString *identifier;
//源控制器
@property (nonatomic, readonly) id sourceViewController;
//目标控制器
@property (nonatomic, readonly) id destinationViewController;

当我们拿到了segue也就拿到了他的属性,就可以拿到目标控制器这个属性(其它两个先不做解释,如果有想了解的可单独找我),这时候也就相当于我们在A控制器里就拿到了B,也就可以给B设置数据了.这也就是所谓的顺传,主要是用到了这个方法;

2.逆传

也就是把B控制器里的值传递A控制器,这要用到代理,今天比较晚了,如果有想了解的可以联系我,我给你们讲,这个等有时间再给大家补上,今天就到这了!

时间: 2024-10-13 13:20:21

控制器之间的顺传与逆传的相关文章

MVC 控制器之间传值学习——session

刚接触MVC不久,写的一些代码自己都不忍心看下去.路漫漫其修远兮,宝宝还需努力!之前只用过Session做登录时用户信息的储存,今天对集合类数据做了小小的尝试:利用session在控制器之间传值,以减少代重复率. 1.将数据储存到Session中(不受类型限制): 2.从session中读取数据(注意转换为正确的的数据类型): 3.随你怎么操作. using System.Collections.Generic; using System.Linq; using System.Web.Mvc;

控制器之间反向传值

控制器之间反向传值 委托(代理) 首先我们定下一个协议protocol 1. #import <Foundation/Foundation.h>2.3. @protocol ChangeText <NSObject>4.5. -(void)changeText:(NSString *)str;6. @end 控制器a遵守协议ChangeText,并实现协议的方法,控制器b公开自己的一个遵守协议ChangeText的属性delegate,在控制器a的视图转到控制器b的视图时,b.de

【UIKit】控制器之间的切换2 【Push】

[控制器切换Push][?Code] 1.创建3个xib和控制器 2.在AppDelegate中设置首先启动的页面 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds] ]; self.

【UIKit】控制器之间的切换1 【Modal】

[Modal][?Code] 1.首先有2个控制器,并且都拥有视图界面. ? 2.点击登录后,第二个页面会从下方上移,那就得在第一个界面中首先创建另外一个界面.然后转向 首先得加载一个协议,这个就是第二个页面的代理. <LoginViewControllerDelegate> 2).点击登录进行转向 - (IBAction)Login { // 初始化控制器 LoginViewController *login=[[LoginViewController alloc]init]; login.

angularJS--多个控制器之间的数据共享

为了在控制器之间共享数据,需要在服务中添加一个用来储存用户名的方法.记住,服务在应用的生命周期内是单例模式的,因此可以将用户名安全地储存在其中. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>12-angularjs的多个控制器数据共享</title> <script src="../js/angularjs.js"

手动调整域控制器之间的复制时间

站点内的域控制器之间的复制默认为每小时4次,管理员可以根据需要调整复制的时间,或者可以设置在某个时间段内不允许复制.在域控制器上打开"AD站点和服务", 并展开NTDS Settings,如下图, 右击右侧的"〈automatically generated〉" 选择"属性",再选择"Change Schedule",如下图, 然后就可以选择每小时复制的次数和某个时间段不允许复制了,如下图, 欢迎大家留言和交流,谢谢! 手动调

Salesforce视图与控制器之间的交互

刚接触Salesforce,过程的确是比较艰难了,中文资料几乎没有,看英文资料学的效率却不高,不过看了一段时间的英文资料发现自己英语水平挺高不少啊,现在看都不用工具翻译,早知道就再次尝试报个6级,看下能过不,嘻嘻....Salesforce的开发也是MVC模式,asp.net的MVC就玩的比较多了,换个平台一下子没适应过来,不过原理都一样,接下来就介绍一下最近的学习成果吧,来看一下SF中MVC模式下视图与控制器之间的交互,先贴控制器和视图的代码,下面有详细讲解. apex视图代码如下: <ape

控制器之间传值,逆传

block有一个非常经典的操作就是控制器之间的传值: 假如说A向B传值是顺传,B向A传值是逆传 A->B顺传:仅仅须要重写prepareForSegue方法,在内部获取到B控制器.而且给B控制器内部的属性赋值就可以 B->A逆传: 1.首先要再B控制器中定义一个block,方法名一般以类名加Block命名,依据须要回传的值的个数以及类型定义相相应的參数,依据需求确定有无返回值,定义方式:typedef 返回值类型 (^类名Block)(參数类型 參数名称,--); 2.定义一个block属性@

【iOS开发-79】利用Modal方式实现控制器之间的跳转

利用Modal方法.事实上就是以下两个方法的运用. Modal方式的切换效果是从底部呈现. -(void)clickModal{ WPViewController *wp=[[WPViewController alloc]init]; [self presentViewController:wp animated:YES completion:^{ }]; } -(void)clickDismiss{ [self dismissViewControllerAnimated:YES complet