我有一个连接UIViewController的UIView。作为子视图(通过界面构建器构建),我有一个UITableView。我想为该UITableView添加一个刷新控件,但要做到这一点,我需要在表视图后面获取默认控制器。
是否有一个UITableView方法,我可以从中获取与之关联的UITableViewController?
答案 0 :(得分:3)
不幸的是,在没有子类化并在实例化后设置委托时,没有办法访问UITableView的控制器(但我强烈建议不要这样做)。您最好的选择是在UITableViewController中设置刷新控件(如果可能的话,在代码中),并将其链接到IB中的表视图。
要将刷新控件添加到尚未由UITableViewController控制的UITableView,您可以执行以下操作。
首先,创建一个UITableViewController来管理控件。
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.tableView;
创建控件,添加一个在刷新后管理UITableView状态的目标,然后将其分配给刚刚创建的tableViewController。
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refreshControlValueChanged:) forControlEvents:UIControlEventValueChanged];
tableViewController.refreshControl = refreshControl;
最后要做的是在你的UIViewController中实现refreshControlValueChanged:
。