2013-10-07 114 views
-1

我理论上讲故事板中的UITableView对象应该有它的委托集,但它没有。我将故事板中的UITableView对象拖入标题,并将其作为IBOutlet属性添加并合成它。不过,我检查了并且只有数据源方法被称为。所以,我实施主代表协议的方式似乎有些问题。正如你在下面的图片中看到的,我似乎正在做一切标准?但代表并没有被设定!思考?iOS - 未设置UITableView委托?

Image 1

Image 2

Image 3

Image 4

+4

你能在这里粘贴相关代码?您的代码很难在打印屏幕上阅读。 – Raptor

+0

您确定在表格视图中可用的默认原型单元格(默认单元格)吗? – Ganapathy

+0

@Ganapathy我该如何检查? –

回答

0

试着改变你的numberOfRows方法(更好的调试)。

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

如果您返回0,则不起作用。

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

0

您已经在numberOfRowsInSection:中写入了一个日志,但不是cellForRowAtIndexPath:中的日志,该日志显示没有为您的表创建单元。您只需返回0作为表格的行数。检查一下。

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

2

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

见截图从下面我举的例子:

enter image description here

+0

所以我应该创建一个UITableViewController除了UITableView?任何想法为什么当我无法连接表视图与视图控制器,如你所描述的? –

+0

@JakeByman你现在不需要UITableViewController。你应该能够按照描述连接你的UIViewController。 – Weston

+0

@JakeByman,一旦你'ctr + click'并设置你的数据源和委托如上所述,我会从你的实现文件中删除'self.mainTableView.delegate = self;'和'self.mainTableView.dataSource = self;'。 – Weston