普通UIViewController中的UITableViewController功能

时间:2013-08-30 09:13:04

标签: iphone ios objective-c uitableview uiviewcontroller

我目前正在UITableView添加到由UIView管理的UIViewController(所有在IB中定义) 现在我想向UITableViewController添加一些UITableView功能(选择文本字段时自动滚动,管理刷新控制,自动插入等)。如何在不使用UITableViewController的情况下管理整个布局(我想在我的视图中添加其他内容,以便UITableViewController不是一个选项)并且不自行重新创建整个功能?< / p>

2 个答案:

答案 0 :(得分:3)

即使您使用普通UITableViewController来管理包含它的视图,也可以为已初始化的UITableView设置UIViewController。 创建UITableViewController,将已存在的UITableView设置为托管表视图,然后将其作为子UIViewController添加到当前的viewcontroller。

示例(用于viewDidLoad方法):

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

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

答案 1 :(得分: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];
}