• Blocks实现代理传值


    一、RootViewController:

    #import "RootViewController.h"
    #import "SecondViewController.h"
    @interface RootViewController ()
    {
        UILabel *_myLabel;
       
    }
    @end
    
    @implementation RootViewController
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.title = @"第一页";
        UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithTitle:@"下一页" style:UIBarButtonItemStylePlain target:self action:@selector(nextPage)];
        self.navigationItem.rightBarButtonItem = item;
        
        _myLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 50)];
        _myLabel.textAlignment = NSTextAlignmentCenter;
        _myLabel.text = @"Blocks";
        [self.view addSubview:_myLabel];
        // Do any additional setup after loading the view from its nib.
    }
    -(void)nextPage{
        SecondViewController *second = [[SecondViewController alloc]initWithBlock:^(NSString *str) {
            NSLog(@"%@",str);
            _myLabel.text = str;
        }];
        [self.navigationController pushViewController:second animated:YES];
    }
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    


    二、SecondViewConroller:

    .h文件

    #import <UIKit/UIKit.h>
    typedef void(^myBlock)(NSString *);
    
    @interface SecondViewController : UIViewController
    {
        myBlock block;
    }
    -(id)initWithBlock:(myBlock)str;
    @end

    .m文件

    #import "SecondViewController.h"
    
    @interface SecondViewController ()
    
    @end
    
    @implementation SecondViewController
    -(id)initWithBlock:(myBlock)str{
        self = [super init];
        if(self)
        {
            block = str;
        }
        return self;
    }
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        myButton.frame = CGRectMake(100, 100, 100, 50);
        [myButton setTitle:@"点我传值!" forState:UIControlStateNormal];
        [myButton addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:myButton];
        
        // Do any additional setup after loading the view from its nib.
    }
    -(void)clicked{
        NSLog(@"我被点击了!

    "); if (block) { block(@"哈哈"); } //[self.navigationController popViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }



  • 相关阅读:
    LVS-三种负载均衡方式比较
    keepalived和heartbeat区别
    vmware-question
    SQL Server MYSQL 检查点的好处
    MYSQL 引擎的情况
    MYSQL 关闭服务的过程
    SQL Server 行的删除与修改-------------(未完待续P222 deep SQL Server 222 )
    SQL Server一些重要视图 1
    SQL Server 查看数据页面
    SQL Server 向堆表中插入数据的过程
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6820884.html
Copyright © 2020-2023  润新知