代理传值(B->A)

从BViewController传到AViewController

在BViewController.h中

#import <UIKit/UIKit.h>

@protocol IDDelegate <NSObject>

- (void)setIDValue:(NSString *)value;

@end

@interface BViewController : UIViewController

@end

在BViewController.m中

#import "BViewController.h"

@interface BViewController ()

@property(nonatomic, retain) id<IDDelegate> idDelegate; // 注册一个代理

@end

然后在需要跳转的时候

AViewController *a = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2];

self.idDelegate = a; // 这里和AViewController 进行交互,下一句代码就是对应的赋值

[self.idDelegate setIDValue:stringValue];

[self.navigationController popToViewController:qvc animated:true];

 

在AViewController.h中

#import "BViewController.h" // 导入协议

@interface AViewController : UIViewController<IDDelegate>// 遵守协议

@property (strong, nonatomic) UITextField *contactIdField;

- (void)setIDValue:(NSString *)value;

@end

在AViewController.m中

- (void)setIDValue:(NSString *)value // 实现方法

{

self.contactIdField.text = value ;

}

时间: 2024-10-06 07:01:18

代理传值(B->A)的相关文章

iOS中多视图的传值 属性传值和代理传值

首先创建两个类 ,FirstViewController和SecondViewController,都继承于UIViewController 1 #import "AppDelegate.h" 2 #import "FirstViewController.h" 3 4 @interface AppDelegate () 5 6 @end 7 8 @implementation AppDelegate 9 10 11 - (BOOL)application:(UIAp

iOS--页面间的代理传值(属性、代理(委托)、代码块、单例、通知)

(一)属性传值 第二个界面中的lable显示第一个界面textField中的文本 首先我们建立一个RootViewControllers和一个DetailViewControllers,在DetailViewControllers中声明一个textString属性,用于接收传过来的字符串, (三)代理传值 RootViewControllers页面push到DetailViewControllers页面,如果DetailViewControllers页面的信息想回传(回调)到RootViewCo

iOS 页面间传值 之 属性传值,代理传值

手机 APP 运行,不同页面间传值是必不可少,传值的方式有很多(方法传值,属性传值,代理传值,单例传值) ,这里主要总结下属性传值和代理传值. 属性传值:属性传值是最简单,也是最常见的一种传值方式,但其具有局限性(一般用于将第一个页面的值传递到第二个页面,但无法从第二个页面传到第一个页面), 向SecondViewController传值:SecondViewController 设置属性 sendMessage 1 - (void)rightButtonAction:(UIBarButtonI

属性传值和代理传值的步骤

//属性传值:最常用的传值方式 /** * 操作过程: 1.在第二个页面.h文件中书写属性 (设置那个传值属性) 2.就在第一个页面创建第二页控制器的方法里面,进行赋值操作 3.适用性(局限性): 仅仅适用于第一个页面传值到下一个页面 */ /** * 代理传值 操作过程 1.在第二级控制器.h文件中,设置非正式协议(方法必须带参数) 2.在第二级控制器.h文件中写属性 3.在第二级控制器.m文件中,利用代理属性,去调用协议里面的方法(同时把参数传出来) 4.在第一级控制器中遵守协议 5.在第一

IOS传值--代理传值,block传值,NSNotificationCenter传值

一:利用代理传值,就是利用代理进行通信. 接口文件: #import <Foundation/Foundation.h> @protocol Cdelegate <NSObject> -(void)change:(NSString *)name; @end .h文件 @interface ViewController : UIViewController<Cdelegate> .m文件 - (IBAction)pushBB:(id)sender { BViewContr

代理传值

代理(delegate)传值 ---- 顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理. //代理传值 注意:从后往前传(如果从前往后传,会传不成功) //流程: 1.后一个界面定义一个协议,并且定义一个属性叫delegate 2.在前一个界面进入后一个界面的瞬间,(即:创建完成一个界面之后),让前一个界面作为后一个界面的delegate 3.前一个界面实现代理方法 4.后一个界面在合适的机会, 让代理, 执行,代理方法 (传的值以参数的形式 含在代理方法里) 代码如下

Blocks实现代理传值

一.RootViewController: #import "RootViewController.h" #import "SecondViewController.h" @interface RootViewController () { UILabel *_myLabel; } @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle

【iOS】代理传值与块代码传值

主线程与子线程常常须要进行数据的传递.不同的类之间,不同的控制器之间都须要. 并且常常须要监听一个动作的完毕.而后才去做对应事件. (代理是一对一的关系). 一.代理传值 代理是一种设计模式. iOS中用的许多.能够通过自己定义代理来进行传值. 參见我的这篇文章 http://blog.csdn.net/xn4545945/article/details/31036523 在iOS中.托付方与被托付方都要实现3个步骤.(见代码凝视) 以下代码:模拟下载完毕后须要更新UI. 用代理来传值. XNU

iOS 代理传值(逆传)

休息够了,该写点东西了,前一段时间感冒,发烧,扁桃体发炎,发烧,扁桃体再次发炎,再次发烧,够够的了,进入正题,这次主题是通过代理来实现传值,是逆传,就是反方向传值(废话),准备工作的是,有两个控制器,每个控制器上有两个控件,一个是Button(用来实现控制器之间的跳转),一个是Label(用来展示要传递的值和传递过来的值),代理传值很实用,很多时候用代理解耦,不过代码量也不少: 基本原理:有控制器A,控制器B,代理C,当B快要死的时候找了代理C,说:我快死了,你把我这点遗产给A送过去,我是没机会

SWIFT语言实现代理传值/闭包传值

1.需求:利用代理实现反向传值(例子采用点击第二个视图控制器中的按钮来改变第一个视图控制器中的Label的内容) 一.第一个界面 1 class ViewController: UIViewController, ChangeTestLabelDelegate { 2 var testLabel: UILabel? 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 // Do any additional setup after lo