這里舉例一個(gè)Block回調(diào)修改上一下界面的背景顏色踩寇。
ViewController1 控制器1监徘,ViewController2 控制器2
控制器1跳轉(zhuǎn)到控制器2晋修,然后在控制器2觸發(fā)事件回調(diào)修改控制器1的背景顏色為紅色。
ViewController2的實(shí)現(xiàn)
#import
@interface ViewController2 : UIViewController
/**
*? 定義了一個(gè)changeColor的Block凰盔。這個(gè)changeColor必須帶一個(gè)參數(shù)墓卦,這個(gè)參數(shù)的類(lèi)型必須為id類(lèi)型的
*? 無(wú)返回值
*? @param id
*/
typedef void(^changeColor)(id);
/**
*? 用上面定義的changeColor聲明一個(gè)Block,聲明的這個(gè)Block必須遵守聲明的要求。
*/
@property (nonatomic, copy) changeColor backgroundColor;
@end
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//聲明一個(gè)顏色
UIColor *color = [UIColor redColor];
//用剛剛聲明的那個(gè)Block去回調(diào)修改上一界面的背景色
self.backgroundColor(color);
}
ViewController1的實(shí)現(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];
}
著作權(quán)歸作者所有户敬。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)落剪,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。