iOS – UITableView委托没有设置?

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

图1

图2

图3

图4

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

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

在此处输入图像描述

尝试更改numberOfRows方法(以获得更好的调试)。

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

如果您返回0,则无效。

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

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

并且当您选择一行时,将调用委托方法didSelectRowAtIndexPath:但是为此,您必须在表中首先排一行。