這里舉例一個Block回調(diào)修改上一下界面的背景顏色。
ViewController1 控制器1,ViewController2 控制器2
控制器1跳轉到控制器2,然后在控制器2觸發(fā)事件回調(diào)修改控制器1的背景顏色為紅色。
ViewController2的實現(xiàn)
#import
@interface ViewController2 : UIViewController
/**
*? 定義了一個changeColor的Block。這個changeColor必須帶一個參數(shù),這個參數(shù)的類型必須為id類型的
*? 無返回值
*? @param id
*/
typedef void(^changeColor)(id);
/**
*? 用上面定義的changeColor聲明一個Block,聲明的這個Block必須遵守聲明的要求。
*/
@property (nonatomic, copy) changeColor backgroundColor;
@end
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//聲明一個顏色
UIColor *color = [UIColor redColor];
//用剛剛聲明的那個Block去回調(diào)修改上一界面的背景色
self.backgroundColor(color);
}
ViewController1的實現(xiàn)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
ViewController2 *vc =[[ViewController2 alloc]init];
// 回調(diào)修改顏色
vc.backgroundColor = ^(UIColor *color){
self.view.backgroundColor = color;
};
[self.navigationController pushViewController:vc animated:YES];
}
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。