美文网首页
block在两个页面的传值

block在两个页面的传值

作者: 七月上 | 来源:发表于2016-03-02 09:06 被阅读93次

一直知道block有反向传值的功能,自己做了个测试。

第一个页面有一个label,第二个页面有个UITextField。

当在UITextField输入值后,点击导航栏上的back按钮,可以将UITextField上面的值反回到第一个页面的label上。

#import"ViewController.h"

#import"SecondViewController.h"

@interfaceViewController()

{

UILabel*label;

}

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

label= [[UILabelalloc]initWithFrame:CGRectMake(100,100,100,50)];

label.backgroundColor= [UIColorwhiteColor];

[self.viewaddSubview:label];

self.navigationItem.rightBarButtonItem= [[UIBarButtonItemalloc]initWithTitle:@"next"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(next:)];

}

-(void)next:(UIBarButtonItem*)sender{

SecondViewController*sVC= [[SecondViewControlleralloc]init];

[self.navigationControllerpushViewController:sVCanimated:YES];

sVC.block=^(NSString*string)

{

label.text= string;

returnstring;

};

第二个页面的.h

#import

//声明一个有返回值的名字叫sendValue的block

typedefNSString*(^sendValue)(NSString*) ;

@interfaceSecondViewController :UIViewController

//把block定义为属性

@property(nonatomic,strong)sendValueblock;

@end

.m

#import"SecondViewController.h"

@interfaceSecondViewController()

{

UITextField*textField;

}

@end

@implementationSecondViewController

- (void)viewDidLoad {

[superviewDidLoad];

textField= [[UITextFieldalloc]initWithFrame:CGRectMake(100,100,100,50)];

textField.backgroundColor= [UIColorwhiteColor];

[self.viewaddSubview:textField];

self.navigationItem.rightBarButtonItem= [[UIBarButtonItemalloc]initWithTitle:@"back"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(back:)];

}

-(void)back:(UIBarButtonItem*)sender{



self.block(textField.text);//调用block

[self.navigationControllerpopToRootViewControllerAnimated:YES];

}

@end

相关文章

  • block在两个页面的传值

    一直知道block有反向传值的功能,自己做了个测试。 第一个页面有一个label,第二个页面有个UITextFie...

  • iOS开发-block传值

    block传值步骤比代理传值步骤简便,实际开发中经常使用到。 block传值分为block属性传值和block方法...

  • Block 之传值

    传值流程: 定义一个 block 在A实例中,传值给 block 在B实例中,实现block,获取到值 .h文件 ...

  • block入门和简单使用(定义,做参数,做返回值,内存管理,循环

    本文略为全面的介绍block的使用:block定义方式,block传值,block循环引用,block内存管理,b...

  • 浅谈Block

    Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等。用过GCD就知道Block的精妙之处。...

  • ios简单学之3-block和回调

    Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等。用过GCD就知道Block的精妙之处。...

  • iOS block简单用法(3)

    block用于传值 效率比代理更高 比如要把A界面的值传给B界面 (1) 定义block A界面的 .h type...

  • iOS-block总结

    block回调-传值 其实就是block作为参数传值方:类的.h有block属性,类的.m有block调用(传值,...

  • iOS技术总结(Block)[整理]

    摘要: . Block代码块结构及几种类型. __block使用.使用block在两个界面中传值问题 官方文档:苹...

  • iOS页面间传值详解(一)

    一、A页面传值给B界面: 采用的传值方式:属性传值,在A页面跳转B界面的地方直接给B界面的属性赋值即可。 二、A页...

网友评论

      本文标题:block在两个页面的传值

      本文链接:https://www.haomeiwen.com/subject/tcrnkttx.html