Block--两个界面 间回调传值
来源:互联网 发布:数据挖掘工具 编辑:程序博客网 时间:2024/06/13 22:56
使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值:
首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面。
第二个视图控制器
#import <UIKit/UIKit.h>typedef void (^PassValueBlock) (NSString *ShowText);@interface DetailViewController : UIViewController@property (nonatomic,copy) PassValueBlock ShowTextBlock;-(void)ShowTextValue:(PassValueBlock)block;@end
#import "DetailViewController.h"@interface DetailViewController ()@end@implementation DetailViewController- (void)viewDidLoad { [super viewDidLoad]; UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor=[UIColor blueColor]; button.frame=CGRectMake(100, 100, 100, 20); [button setTitle:@"回调传值" forState:UIControlStateNormal]; [button addTarget:self action:@selector(PassValue:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];}-(void)PassValue:(UIButton *)sender{ [self.navigationController popViewControllerAnimated:YES]; //block 传值 if (self.ShowTextBlock != nil) { self.ShowTextBlock(@"20"); }}-(void)ShowTextValue:(PassValueBlock)block{ //保存block self.ShowTextBlock = block;}
第一个视图控制器
#import "RootViewController.h"#import "DetailViewController.h"@interface RootViewController ()@property (nonatomic,strong) UILabel *label;@end@implementation RootViewController- (void)viewDidLoad { [super viewDidLoad]; //创建显示数据的label self.label = [[UILabel alloc] initWithFrame:CGRectMake(100, 300, 40, 60)]; self.label.backgroundColor = [UIColor grayColor]; [self.view addSubview:self.label]; //创建button UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor = [UIColor blueColor]; button.frame = CGRectMake(100, 100, 40, 20); [button addTarget:self action:@selector(Push:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];}-(void)Push:(UIButton *)sender{ //跳转控制器 DetailViewController *detailVC = [[DetailViewController alloc] init]; [self.navigationController pushViewController:detailVC animated:YES]; //回调传值 [detailVC ShowTextValue:^(NSString *ShowText) { self.label.text = ShowText; }];}
0 0
- Block--两个界面 间回调传值
- Block在两个界面之间传值
- Block 两个界面之间传值
- block传值(1)两个界面间传值
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- IOS开发: 使用Block在两个界面之间传值(Block高级用法:Block传值)
- 使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值
- iOS开发中两个界面之间用Block传值
- iOS开发:使用Block在两个界面之间传值
- iOS开发:使用Block在两个界面之间…
- iOS开发:StoryBoard 使用Block在两个界面之间传值
- 关于block界面传值
- block实现界面传值
- 查看Oracle表空间大小
- DPM目标检测-1
- Fragment系列之Transactions.commit和Activity的状态
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
- android:contentInsetStart android:contentInsetEnd contentInsetStart paddingstart paddingEnd
- Block--两个界面 间回调传值
- 一些代码优化的方法
- Gitlab配置ssh连接,上传项目到Gitlab
- baselineAligned
- 测试手机视频录屏并转GIF功能
- 数据碎片解析
- 201,.plist文件 与 .pch文件的了解
- JDK1.7 Paths,Files类实现文件夹的复制与删除
- Web Developer 成长路线图