UI_Block传值

block 传值

在第二个控制器里面声明block

// 类似代理的协议
typedef void(^TransmitValueBlock) (NSString *);

@interface SecondViewController : UIViewController

// 类似代理的定义
@property (nonatomic, copy) TransmitValueBlock ablock;

// 可以不用写 typedef
@property (nonatomic, copy) void (^yadongBlock) (NSString *);

@end

在第一个控制器里面实现 block 体

- (void)buttonDidClicked:(UIButton *)sender
{
    SecondViewController *secondVC = [[SecondViewController alloc] init];

    // 第一个页面实现 block 体
    secondVC.ablock = ^(NSString *text){

        NSLog(@"%@", text);

        self.rootView.label.text = text;
    };

    [self.navigationController pushViewController:secondVC animated:YES];
}

第二个页面调用

- (void)leftBarButtonItemAction:(UIButton *)sender
{
    // 第二个页面调用,传一个参数
    self.ablock(self.rootView.textfield.text);

    [self.navigationController popToRootViewControllerAnimated:YES];
    NSLog(@"fanhui");
}

缓存数据

    // 暂时存储
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isLogin"];
    // 取值
    BOOL isLoginIt = [[NSUserDefaults standardUserDefaults] boolForKey:@"isLogin"];

版权声明:本文为outlan原创文章,未经博主允许不得转载。

时间: 2024-10-03 13:45:59

UI_Block传值的相关文章

JS 传值 传址

在JS中,有两种不同的方式可以操作数据的值,这两种技术分别叫做 传值 和 传址. 传值:在赋值过程中,首先对值进行了一份拷贝,而后将这份拷贝存储到一个变量.对象属性或数组元素中.拷贝的值和原始的值是完全独立.互不影响的.当一份数据通过值传递给一个函数,实际上被传递的不是数据本身,而是数据的一份拷贝.因此,如果函数修改了这个值,影响到的只是数据的那份拷贝,而并不影响数据本身. 传址:在赋值过程中,变量实际上存储的是数据的地址(对数据的引用),而不是原始数据或者是数据的拷贝.如果值通过一个地址发生了

Swift代理和传值

第一个视图控制器: import UIKit // 遵循协议 class ViewController: UIViewController,SecondVCDelegate { override func viewDidLoad() { super.viewDidLoad() // 创建一个button let button1 = UIButton(frame: CGRectMake(120, 120, 50, 50)) // 修改背景颜色 button1.backgroundColor = U

iOS pop使用通知传值

iOS pop回父级页面,使用通知传值 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IBAction)buttonClick:(id)sender { //添加 字典,将label的值通过key值设置传递 NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:self.textFieldOne.text,@"textOne",self.textFieldTwo.text,@&q

iOS之页面传值

页面之间的传值方式 设有firstView和secondView两个视图 属性传值(适用于页面之间的正向传值) 1.在要显示信息的页面,创建属性 2.在要传值的页面,设置属性值 3.在显示信息的页面的ViewdidLoad方法中,接收属性值 代理传值(适用于页面之间的反向传值) 1.创建协议及协议方法,在反向传值的页面(secondVC)中 2.创建协议类型的属性,   在secondVC中创建属性 3.调用属性  即delegate,在secondVC页面中的对象传值的方法中调用[self.d

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

JQuery ajax 在aspx中传值和取值

传值:ajax中的data(json)  js代码: <script type="text/javascript"> $(function () { $("#btnAddNews").bind("click", function () { var _name= $.trim($("#txtNewTitle").val()); $.ajax({ type: "POST", url: "A

webform之session传值(临时数据的存储)与扩展属性 --(购物车练习)

页面传值:1.QueryString传值在源页面写:Response.Redirect("Main.aspx?uid="+uid+"&pwd="+pwd);在目标页面:Request["uid"].ToString();2.Session *****特点:可以存任何东西,每个用户都会生成一个特定的Session,Session是存储在服务中的,一般默认存储20分钟,20分钟之后过期用法:在登录页面:Session["uid&qu

ios-私人通讯录 页面间的跳转和传值

这个demo 有多个页面 并涉及顺传和逆传 而且还有一个第三方库的导入 来实现自定义提示消息的特效 利用代理来实现页面间的传值 一个页面代表一个controller 这次  ViewController  反而一句代码都没写 // // HMContact.h // 私人通讯录 // // Created by YaguangZhu on 15/9/6. // Copyright (c) 2015年 YaguangZhu. All rights reserved. // #import <Fou

[iOS]视图间传值/传参的若干方式

单例模式 属性 代理 通知 单例模式 某个类只产生一个对象,且是一个全局对象,以后每次创建该类对象时,只会得到第一次创建的那个类对象. 所以,可以用于在多视图场景下传递参数,原理如下图所示. 在创建单例类的时候,需要注意: 首先必须创建一个全局实例,通常存放在一个全局变量中,此全局变量设置为nil 需要重写+allocWithZone:方法,防止通过标准的alloc方式创建新的实例 需要重写-copyWithZone方法,防止通过copy方法得到新的实例 需要重写-mutableCopyWith