从UITableView获取UITableViewController

时间:2014-08-28 18:50:46

标签: objective-c uitableview uirefreshcontrol

我有一个连接UIViewController的UIView。作为子视图(通过界面构建​​器构建),我有一个UITableView。我想为该UITableView添加一个刷新控件,但要做到这一点,我需要在表视图后面获取默认控制器。

是否有一个UITableView方法,我可以从中获取与之关联的UITableViewController?

1 个答案:

答案 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: