block传值 iOS

2015-07-27 0 556
block传值 iOS
/*
 用typedef 定义 block 类型
 在 委托/主动方 定义block变量  调用 block
 把block 代码块 作为代理 写在 被动方
 */
//.h文件里面  第二个页面
#import <UIKit/UIKit.h>
/*typedef定义block    int返回参数类型  ChangeStatus  block函数名     status传过去的参数名  NSString*  status的类型*/
typedef int (^ChangeStatus) (NSString* status);

@interface SecondViewController : UIViewController

//这里要用copy   定义block 对象名
@property (nonatomic,copy) ChangeStatus changeStatus;

@end
//.m文件
#import "SecondViewController.h"
@interface SecondViewController ()
@end

@implementation SecondViewController

- (void)viewDidLoad
{
if (self.changeStatus) {//判断一下
        /*回调 外界传入的 block
   han 传过去的参数
   ak 返回来的参数*/
    NSString* han = @"123";
    int ak =  self.changeStatus(han);
        NSLog(@"%d",ak);
    }else{
        NSLog(@"没有传入block");
    }
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


//第一个页面.m文件
- (void)viewDidLoad
{

_svc = [[SecondViewController alloc] init];
    
    /*
  NSString* status block传过去的字符串   return 3; 返回过去的参数
{}里面的status是回调回来的参数
*/
    _svc.changeStatus = ^(NSString* status){
        NSLog(@"%@",status);
        return 3;
    };

}



@end

遇见资源网 objective-c block传值 iOS http://www.ox520.com/18010.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务