0
我已經爲UITableView類寫入了類別。在那裏,我添加了添加刷新控制器的方法。在Obj-C中添加來自addTarget動作函數的回調
我想我的刷新控制器目標方法給主函數回調。
我的tableView類別.H
#import <UIKit/UIKit.h>
typedef void (^UITableViewRefreshControllerCompletion) (UITableView *tableView);
@interface UITableView (UITableView)
-(void)addRefreshController:(UITableViewRefreshControllerCompletion)completionblock;
-(void)removeRefreshController;
@end
我的tableView分類.M:
#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];
}
我在給調用刷新控制器我ViewController爲:
[self.profileDetailsrTableView addRefreshController:^(UITableView *tableView){
[self profileDetailsAPICall];
}];
分類不能添加存儲特性,所以也沒有辦法,你可以在塊存儲以便稍後調用它。 – Paulw11
我對你所問的有點困惑。如果您希望能夠從'refreshTableView'內部調用'completionBlock',則需要存儲對回調的引用。您不能在類別中執行此操作,因爲類別不能包含實例變量。 – RPK
我可以在refresh控制對象中存儲completionBlock嗎? –