是否可以以编程方式设置UITableViewController的dataSource?

时间:2009-10-29 18:00:26

标签: iphone datasource uitableview

我在Xcode中使用基于导航的模板创建了一个应用程序。我还创建了一个实现UITableViewDataSource协议的类,并希望将它用于RootViewController中的UITableView。

我已尝试在viewDidLoad中设置dataSource属性,并尝试在所有类型的初始化程序中设置,但我无法使其工作。

我该怎么做?

目前我正在做以下事情:

- (void)viewDidLoad {
    [super viewDidLoad];

    // The Navigation Controller uses this to display the title in the nav bar.
    self.title = @"Names";

    // Little button with the + sign on the right in the nav bar
    self.navigationItem.rightBarButtonItem = 
        [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(showAddNameScreen)];

    // Set the data source and reload.
    [self.tableView setDataSource:[DataAcceess sharedInstance]];
    [self.tableView reloadData];
}

但是表格保持空白且数据源方法永远不会被调用(numberOfRowsInSectioncellForRowAtIndexPath

编辑:我的sharedInstance错误并返回零。没有任何方法被调用过。

4 个答案:

答案 0 :(得分:0)

尝试

[self.tableView setDataSource:myDataSource];

来自UITableViewController子类(即self)。

答案 1 :(得分:0)

设置dataSource后,您是否致电reloadData以使表格视图使用新数据源?

答案 2 :(得分:0)

您的表数据源是否返回非零行数?

答案 3 :(得分:0)

问题是我的sharedInstance方法有一个错误,它可以返回nil。由于忽略了向nil发送消息,所以我的班级上没有调用任何内容。