2

我目前正在UITableView添加一个UIView由普通管理的UIViewController(全部在 IB 中定义)现在我想为此添加一些UITableViewController功能UITableView(选择文本字段时自动滚动、管理刷新控制、自动插入等)。我如何在不使用UITableViewController整个布局的情况下管理它(我也想在我的视图中添加其他东西,所以UITableViewController不是一个选项)并且我自己不重新创建整个功能?

4

2 回答 2

3

即使您使用法线来管理包含它的视图,也可以UITableViewController为已经初始化的视图设置一个。创建一个,将已经存在的设置为托管表视图,然后将其作为子视图添加到您当前的视图控制器中。UITableViewUIViewControllerUITableViewControllerUITableViewUIViewController

示例(用于viewDidLoad方法中):

UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:yourTableView.style];
tableViewController.tableView = yourTableView;
[self addChildViewController:tableViewController];

这将添加您想要的所有功能,同时仍支持向您的视图添加更多组件。

于 2013-08-30T09:19:14.310 回答
0

如果您确实使用常规视图控制器,请记住闪烁滚动条并在适当的位置取消选择当前选定的行。这是我的一个小烦恼。UITableViewController默认情况下这样做:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self.tableView flashScrollIndicators];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow
                      animated:animated];
}
于 2013-08-30T09:27:56.917 回答