簡體   English   中英

IBAction方法中調用的完成處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM