iOS - 没有设置UITableView委托?

时间:2013-10-07 02:54:03

标签: iphone ios objective-c uitableview

我在故事板中的UITableView对象理论上应该设置其委托,但事实并非如此。我将UITableView对象从storyboard拖到标题中,并将其作为IBOutlet属性添加并合成它。但是,我检查了只调用了数据源方法。因此,我实现主委托协议的方式似乎有些不对劲。正如您在下面的图片中看到的那样,我似乎在做一切标准的事情?但是代表还没有定下来!想法?

Image 1

Image 2

Image 3

Image 4

3 个答案:

答案 0 :(得分:2)

我认为您的解决方案不起作用的原因是因为您在UiViewController中使用TableView而不是UiTableViewController。我有一段时间没有同样的问题。这就是我做的。创建一个IBOutlet到头文件并在实现文件中合成它(我相信你已经完成了这一步)。回到故事板。在表格视图上control + click并将连接器拖动到视图控制器(带有白色框的黄色圆圈)。选择 datasource 。再次重复此步骤,而不是选择数据源选择委托。在右侧的菜单中,如果设置正确,您应该可以看到您的插座。这应该可以解决您的委托问题。

请参阅以下示例中的屏幕截图:

enter image description here

答案 1 :(得分:0)

尝试更改numberOfRows方法(以便更好地进行调试)。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    int rows = [allParties count];
    NSLog(@"number of rows: %d", rows);
    return rows;
}

如果您返回0,则无效。

同样在将来,请粘贴代码而不是拍摄屏幕截图。

答案 2 :(得分:0)

您已在numberOfRowsInSection:中记录了正在调用的日志,而不是cellForRowAtIndexPath:中的日志,这表明没有为您的表创建单元格。您只需返回0作为表的行数。检查一下。

当您选择一行时,将调用委托方法didSelectRowAtIndexPath:,但为此,您必须先在表格中添加一行。