您的位置:首页 > 移动开发 > IOS开发

iOS代理方法和block的使用

2016-09-29 15:37 357 查看
创建协议
一.
@protocol SecondViewControllerDelegate <NSObject>
-(void)secondViewControllerDidDit:(NSString *)name;
@end

二.@property(nonatomic,weak)id<SecondViewControllerDelegate>
delegate;

三. 
-(void)secondViewControllerDidDit:(NSString *)name{

if ([self.delegaterespondsToSelector:@selector(secondViewControllerDidDit:)])
{
        [self.delegatesecondViewControllerDidDit:@"你好"];
    }
}

四.
遵守协议,设置代理,实现方法
遵守协议
@interface ViewController ()<SecondViewControllerDelegate>
设置代理
second.delegate =self;
实现方法
-(void)secondViewControllerDidDit:(NSString *)name{
    NSLog(@"secondViewControllerDidDit--%@",name);
}
=========================block的使用=========================
1.第二个页面声明block

//<1>声明block

typedef void(^myBlock)(NSString *name);

//<2>声明一个block属性
@property (nonatomic,copy)
myBlock block;

 //<3>调用block、传值
    self.block(@"123");

//实现
  NextViewController *next = [[NextViewControlleralloc]
init];
    //<4>实现block
    //a:NSString *name  
代表传过来的值
    next.block = ^(NSString *name){
        //<5>实现
        NSLog(@"%@",name);
        self.view.backgroundColor = [UIColorcyanColor];
    };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: