0
UITableViewクラスのカテゴリを記述しました。そこで、リフレッシュコントローラを追加する方法を追加しました。Obj-CのaddTargetアクション関数からコールバックを追加
私のリフレッシュコントローラのターゲットメソッドは、main関数へのコールバックを提供します。私は私の中にリフレッシュコントローラへの呼び出しを与えている
#import "UITableView+UITableView.h"
@implementation UITableView (UITableView)
-(void)addRefreshController:(UITableViewRefreshControllerCompletion)completionblock {
UIRefreshControl *refreshControl = [[UIRefreshControl alloc]init];
[refreshControl setTintColor:[UIColor appthemeblueColor]];
[self setRefreshControl:refreshControl];
[refreshControl addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
}
-(void) refreshTableView:(UIRefreshControl*)refreshControl {
completionblock(self); // I want this to call when this method is getting called
}
-(void)removeRefreshController {
if([self.refreshControl isRefreshing])
[self.refreshControl endRefreshing];
}
:
#import <UIKit/UIKit.h>
typedef void (^UITableViewRefreshControllerCompletion) (UITableView *tableView);
@interface UITableView (UITableView)
-(void)addRefreshController:(UITableViewRefreshControllerCompletion)completionblock;
-(void)removeRefreshController;
@end
の.h私のtableViewカテゴリ私のtableViewカテゴリー.M
ViewController名前:
[self.profileDetailsrTableView addRefreshController:^(UITableView *tableView){ [self profileDetailsAPICall]; }];
カテゴリーは、保存されたプロパティを追加することはできません。 – Paulw11
私はあなたが何を求めているのか、少し混乱しています。 'refreshTableView'の内部から' completionBlock'を呼び出せるようにするには、コールバックへの参照を格納する必要があります。カテゴリにはインスタンス変数を含めることができないため、カテゴリ内でこれを行うことはできません。 – RPK
リフレッシュコントロールオブジェクト内にcompletionBlockを格納できますか? –