我有一个UIViewController,它有一个UITableView作为子视图。我试图在桌面上添加一个pull-to-refresh。
根据我发现here的一些例子和讨论,我有UIRefresh显示,但它从不调用选择器。我没有得到拉动动作的通知。
我不能使用UITableViewController作为我的主控制器,因为我需要在屏幕底部添加一个固定按钮。
我感觉我错过了一些希望对其他人来说显而易见的东西。
@interface ActivityViewController ()<UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate>
@end
- (void)viewDidLoad{
[super viewDidLoad];
_myTableView.delegate = self;
_myTableView.dataSource = self;
_tableViewController = [UITableViewController new];
_tableViewController.tableView = _myTableView;
[self addChildViewController:_tableViewController]; // Not sure this is necessary
_refreshControl = [UIRefreshControl new];
[_refreshControl addTarget:self action:@selector(loadMoreData) forControlEvents:UIControlEventValueChanged];
_tableViewController.refreshControl = _refreshControl;
}
- (void)loadMoreData{
NSLog(@"loadMoreData");
}
答案 0 :(得分:1)
好的,现在正在运作。但我不确定为什么!我有点离开它,改变了其他需要做的事情,然后昨晚再次测试,它正在工作。我承认我有点困惑。我使用了前几篇文章here中给出的答案中的代码,正如我几天前所做的那样。谢谢你的时间和意见。正如预期的那样,它现在完美无缺。
// Refresh control
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.myTableView;
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(loadMoreData) forControlEvents:UIControlEventValueChanged];
tableViewController.refreshControl = self.refreshControl;
答案 1 :(得分:0)
您应该使用
实例化tableviewcontroller[UITableViewController alloc] initWithStyle:(UITableViewStyle)
使用new
执行alloc init,但您应该使用指定的初始化程序