iOS 页面与页面之间传参数的方法 代码块传值

代码块传值 是从后往前传值

1.声明代码块 (SecondXXX.h)

2.声明一个代码块类型的属性(SecondXXX.h)

3.调用代码块(SecondXXX.m)

4.实现代码块(SecondXXX.m)

#import <UIKit/UIKit.h>

#import "FirstViewController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

FirstViewController *first=[[FirstViewController alloc] init];

self.window.rootViewController=first;

return YES;

}

#import <UIKit/UIKit.h>

#import "SecondViewController.h"

@interface FirstViewController : UIViewController<UITextFieldDelegate>

@property(strong,nonatomic) UITextField *MyText;

@property(strong,nonatomic) UIButton *MyButton;

@end

#import "FirstViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (void)viewDidLoad

{

[super viewDidLoad];

self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"44.jpg"]];

self.MyText=[[UITextField alloc] initWithFrame:CGRectMake(100, 100, 200, 50)];

self.MyText.borderStyle=1;

self.MyText.delegate=self;

self.MyText.tintColor=[UIColor redColor];

[self.view addSubview:self.MyText];

self.MyButton=[[UIButton alloc] initWithFrame:CGRectMake(150, 200, 100, 50)];

self.MyButton.backgroundColor=[UIColor redColor];

[self.MyButton setTitle:@"next" forState:UIControlStateNormal];

[self.MyButton addTarget:self action:@selector(NextPage) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:self.MyButton];

}

-(void)NextPage

{

SecondViewController *second=[[SecondViewController alloc] init];

//将文本框的内容赋给字符串

second.MyStr=self.MyText.text;

//4.实现代码块 显示信息

second.MyBlock=^(NSString *Infor)

{

self.MyText.text=Infor;

};

//跳到下一页面

[self presentViewController:second animated:YES completion:

^{

NSLog(@"信息传递成功");

}];

}

//隐藏键盘

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

if ([textField isFirstResponder])

{

[textField resignFirstResponder];

}

return YES;

}

#import <UIKit/UIKit.h>

//1.声明代码块 (SecondXXX.h)往前传值

typedef void(^PostValueBlock)(NSString *Infor);

#import "FirstViewController.h"

@interface SecondViewController : UIViewController<UITextFieldDelegate>

@property(strong,nonatomic) NSString *MyStr;

@property(strong,nonatomic) UITextField *MyText;

//2.声明一个代码块类型的属性(SecondXXX.h)

@property(strong,nonatomic) PostValueBlock MyBlock;

@end

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad

{

[super viewDidLoad];

//在父视图上添加背景图

self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"20130714160426_rPTnU.jpeg"]];

//初始化文本框

self.MyText=[[UITextField alloc] initWithFrame:CGRectMake(100, 100,200,50)];

self.MyText.borderStyle=1;

self.MyText.delegate=self;

//将字符串赋给文本框

self.MyText.text=self.MyStr;

//在父视图上添加文本框

[self.view addSubview:self.MyText];

}

//3. 调用代码块的方法

-(BOOL)textFieldShouldReturn:(UITextField *)textField

{

//3.1 调用Block

if (self.MyBlock)

{

self.MyBlock(self.MyText.text);

}

//3.2 隐藏键盘

if ([textField isFirstResponder])

{

[textField resignFirstResponder];

}

//3.3 返回上一页面

[self dismissViewControllerAnimated:YES completion:

^{

NSLog(@"上一页");

}];

return YES;

}

时间: 2024-08-01 22:47:13

iOS 页面与页面之间传参数的方法 代码块传值的相关文章

两个jsp之间传参数乱码

两个jsp之间传参数乱码 一.问题描述: 一个jsp传中文参数调另一个jsp,浏览器接到的参数显示乱码,以下是我个人解决办法,希望有所帮助~~ 二.问题解决办法: 1.传参数的jsp(一定要两个encodeURI): 路径/文件名.jsp?title=' + encodeURI(encodeURI(title)); 2.接参数的jsp(建议接参数解码时判空,否则这个参数不传时,会报错): //引入<%@ page import="java.net.URLDecoder" %>

iOS 页面跳转传值,属性传值,代理传值,代码块传值,单例传值,通知传值

有时候我们在页面跳转的时候回传递相应的参数,如,你想把在第一个页面的文本框里的内容显示在第二个文本框中,或者你又想把第二个文本框中的内容改变之后到第一个页面的文本框中,所有,这个时候我们就要用到页面跳转传值 1.属性传值(正向传值) 属性传值是正向传值,只可以从前面一个页面传递到第二个页面,不可以从第二个页面传递到第一个页面 2.代理传值(逆向传值) 代理传值是逆向传值 代理传值步骤 代理传值 适用于 反向传值 1.1 创建协议 及协议方法 在反向传值的页面(SecondViewControll

QTP多个Action之间传递参数的方法详解

点击打开链接 脚本的朋友们都会碰到多个Action之间传递参数的问题,想当年我也是研究了好久才成功的,网上虽然有很多文章都在讲这个问题,但是大多都是雷同的抄来抄去不能解决实际问题,也有可能是我太笨了吧.下面我们来详细讲一下QTP多个Action之间传递参数的方法. 一.假设Action1调用Action2并且Action1传递参数给Action2 1.Action1的代码及设置 '定义两个变量 Dim strMessA:strMessA = "我是" Dim strMessB:strM

C#,往线程里传参数的方法总结

C#,往线程里传参数的方法总结 Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托.   Thread (ThreadStart) 初始化 Thread 类的新实例.  由 .NET Compact Framework 支持.  Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈

StoryBoard页面联线跳转已经页面之间传参数

1.选中上图黄色.按住Control 把线拖到要要跳转的页面,寻找show. 2.选中联线.在右边Identifier:随便填入一个标示 3.在按钮点击事件加上如下代码 - (IBAction)buttonTouched:(id)sender { [self performSegueWithIdentifier:@"ViewDetail" sender:self]; } 4. StroryBoard中 A 页面把值传到B页面 B 页面 h文件 @property (copy, nona

前端在html页面之间传递参数的方法

项目中经常会出现的一种情况,有一个列表,譬如是案例列表,点击列表中的某一项,跳转至详情页面.详情是根据所点击的某条记录生成的,因为案例和具体的详情页面,都是用户后期自行添加的,我们开始编写时,不可能穷尽.因此跳转页面时,我们需要传递一个参数过去,这样我们才能通过这个参数进行数据请求,然后根据后台返回的数据来生成页面.因此,通过a标签跳转的方式,肯定是行不通的. 我们经常写form表单,提交时,可以传递参数,如果使用表单,并将其隐藏起来,应该可以达到效果. 除此以外,window.location

JSP页面之间传递参数的方法有哪些?

解答: 1)request 2)session 3)application 4)提交表单 5)超链接 原文地址:https://www.cnblogs.com/borter/p/9548097.html

JS完成页面跳转并传参的方法|附加:循环遍历对象

此方法只能传递较少参数 方法如下: <a href='page/index.html'>跳转</a> 以上是正常写法,如果要传参按一下写法: <!--参数写在?后面,多个参数用&隔开,下面传的参数为name=lemon,age=18--> <a href='page/index.html?name=lemon&age=18'></a> 当跳转到页面的时候这个页面的地址栏就会跟你写的那个一样,这时候你只需要获取地址栏的内容并进行采取

二维数组的传参数的方法

如何将二维数组作为函数的参数传递 今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不至于再在这上面浪费时间. 正文: 首先,我引用了谭浩强先生编著的<C程序设计>上面的一节原文,它简要介绍了如何 将二维数组作为参数传递,原文如下(略有改变,请原谅): [原文开始] 可以用二维数组名作为实参或者形参,在被调用函数中对形参数组定义时可以指定所有维数的