[英]Completion Handler called in IBAction Method
我正在調試一個具有舊庫的舊項目。 我不確定他們如何從按鈕操作方法調用塊處理程序。 他們在一個類中聲明了一個方法
+ (void) method: (NSString *) parameter;
我猜他們在其中添加了“取消”按鈕和該按鈕的操作方法。 他們已聲明阻止為
typedef void (^simpleBlock)(void);
@property (nonatomic, copy) simpleBlock simpleBlock;
當它在ViewController類中實現時,稱為
[ClassName method:@"parameter"].simpleBlock = ^{
//Do something
};
他們如何將塊與按鈕動作和方法鏈接在一起,因為我看不到它是庫,所以只得到了頭文件。 在理解此實現的任何幫助將不勝感激。 謝謝!
為了在任何動作上調用一個塊,我們這樣編寫代碼,
在TotalLikes_Comments.h
,
@property (nonatomic, copy) void (^LikeButtonTapAction)(TotalLikes_Comments *aCell);
- (IBAction)openLikesClick:(id)sender;
在TotalLikes_Comments.m
,方法的實際實現是
- (IBAction)openLikesClick:(id)sender {
if (self.openLikesTapAction) {
self.openLikesTapAction(self);
}
}
每當單擊按鈕時,此塊就會使用class對象來初始化,
每當我們需要動作時,無需在類文件中編寫動作代碼,只需在初始化類的位置編寫代碼即可,例如,在cellforrow atIndexpath中
cell.LikeButtonTapAction = ^(TotalLikes_Comments *aCell){
// Do your stuff.
};
上面是IBAction中調用塊的邏輯。 但是在您的情況下,這是用Frameworks編寫的。 隱性邏輯對所有人隱藏。 例如。
if(self.openLikesTapAction) {
self.openLikesTapAction(self);
}
希望您對此有所了解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.