iOS 多界面传值之--Block(代码块)传值
来源:互联网 发布:unity3d导入贴图 编辑:程序博客网 时间:2024/05/24 06:47
Block传值
一般应用于逆向传值,即第二界面向第一界面传值,我们需要记住的两点:
1.要在第二个界面(SecondViewController.h)定义一个Block:
2.在第一个界面(ViewController.m)跳转第二个界面的方法中我们为block属性赋值完成block传值:
3.首先来到SecondViewController.h定义一个代码块
#import <UIKit/UIKit.h>//定义Blocktypedef void (^PushBlock)(NSString *);//声明Block属性@interface SecondViewController : UIViewController@property (nonatomic,strong) PushBlock pushValueString;@end
4.在SecondViewController,m里面设置UITextField 和 UIbutton 成为属性,然后在viewDidLoad 方法里面分别创建一个textField 和 一个button
#import "SecondViewController.h"@interface SecondViewController ()@property (nonatomic,strong) UITextField *textF;@property (nonatomic,strong) NSString *textString;@end@implementation SecondViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor yellowColor]; _textF = [[UITextField alloc]initWithFrame:CGRectMake(0, 250, self.view.bounds.size.width, 50)]; _textF.borderStyle = UITextBorderStyleRoundedRect; [self.view addSubview:_textF]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRectMake(20, 350, self.view.bounds.size.width-40, 50); btn.backgroundColor = [UIColor purpleColor]; btn.titleLabel.font = [UIFont systemFontOfSize:25.0]; btn.tintColor = [UIColor whiteColor]; [btn setTitle:@"Back" forState:UIControlStateNormal]; [btn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn];}
5.实现button里面的点击事件的方法,并且在这方法里面实现Block的核心代码
-(void)backAction:(UIButton *)sender{// 核心代码 _pushValueString (_textF.text); [self dismissViewControllerAnimated:YES completion:nil];}
6.回到ViewController里面,首先我们需要导入一下头文件#import “SecondViewController.h”,并且创建一个UITextField 和 UIbutton
#import "ViewController.h"#import "SecondViewController.h"@interface ViewController ()@property (nonatomic,strong)UITextField *textField;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; /** * block传值(场景)一般用于逆向传值,即第二个界面传值给第一个界面 1.要在第二个界面(SecondViewController.h)定义一个Block: 2.要在第一个界面(ViewController.m)跳转第二个界面的方法中我们为block属性赋值完成block传值: */ self.view.backgroundColor = [UIColor greenColor]; self.title = @"Block传值"; _textField = [[UITextField alloc]initWithFrame:CGRectMake(0, 250, self.view.bounds.size.width, 50)]; _textField.borderStyle = UITextBorderStyleRoundedRect; [self.view addSubview:_textField]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRectMake(20, 350, self.view.bounds.size.width-40, 50); btn.titleLabel.font = [UIFont systemFontOfSize:25.0]; btn.backgroundColor = [UIColor blueColor]; btn.tintColor = [UIColor whiteColor]; [btn setTitle:@"Next" forState:UIControlStateNormal]; [btn addTarget:self action:@selector(nextAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn];}
7.实现一下button的点击事件的方法,并在这个方法里面实现跳转界面和block的核心代码属性赋值
-(void)nextAction:(UIButton *)sender{ SecondViewController *secondVC = [[SecondViewController alloc]init];// 核心代码为block属性赋值 secondVC.pushValueString = ^(NSString *string){ _textField.text = string; }; [self presentViewController:secondVC animated:YES completion:nil];}
8.由于我们用的是模态视图进行页面之间的跳转,所以就不需要去创建UINavigationController了.模拟器运行效果如下
1 0
- iOS 多界面传值之--Block(代码块)传值
- IOS学习之block代码块
- IOS学习之block代码块
- IOS学习之block代码块
- IOS学习之block代码块
- IOS学习之block代码块
- iOS开发:界面之间传值之Block传值(Block高级用法:Block传值)
- iOS 代码块Block
- iOS block代码块
- iOS代码块Block
- iOS开发:界面传值之Block传值
- 代码块 block 传值
- [ios开发基础之]代码块 ——block
- ww笔记-iOS之代码块(block)的使用
- iOS之Block代码块的定义及使用
- IOS 代码块之block的声明、创建、传参的基本使用
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- mac 下Android Studio 常用快捷键
- Win32 SDK窗口程序代码(含详细注释)
- 根据标记定位区域识别数字 OpenCV实践
- 一张图看懂用户角色模型
- 如何阅读源代码
- iOS 多界面传值之--Block(代码块)传值
- 用OpenCV实现Photoshop算法(二): 图像剪切
- libevent,libcurl 以及php扩展libevent,php curl_multi_exec区别
- 计算机网络-概述
- hadoop + hbase环境安装配置
- 数据结构-循环顺序队(C语言)
- 在Unity中修改Fbx中的动画文件
- 聊聊SpringBoot | 第一章:快速搭建SpringBoot第一个应用
- 智能手机总共有多少种解锁图案(c++版本)