【问题标题】:iOS - UITableView delegate not being set?iOS - 未设置 UITableView 委托?
【发布时间】:2013-10-07 02:54:03
【问题描述】:

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

【问题讨论】:

  • 可以在这里粘贴相关代码吗?您的代码很难在打印屏幕中阅读。
  • 您确定表格视图中可用的默认原型单元格(默认单元格)吗?
  • @Ganapathy 我该如何检查?

标签: iphone ios objective-c uitableview


【解决方案1】:

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

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

【讨论】:

  • 所以除了 UITableView 之外,我还应该创建一个 UITableViewController 吗?知道为什么我无法按照您的描述将表格视图与视图控制器连接起来吗?
  • @JakeByman 你现在不需要 UITableViewController。您应该能够按照说明连接您的 UIViewController。
  • @JakeByman,一旦你ctr + click 并如上所述设置你的数据源和委托,我将从你的实现文件中删除self.mainTableView.delegate = self;self.mainTableView.dataSource = self;
  • 不走运!我删除了这些行,按照您的描述将视图控制器连接到表格视图,但仍然没有调用该方法!我的网点甚至看起来和你的一样。呜呜呜……
【解决方案2】:

尝试更改您的 numberOfRows 方法(以便更好地调试)。

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

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

同样,在未来,请粘贴您的代码,而不是截屏。

【讨论】:

    【解决方案3】:

    您已经在两个被调用的numberOfRowsInSection: 中添加了日志,但在cellForRowAtIndexPath: 中没有添加日志,这表明没有为您的表格创建单元格。您只需返回 0 作为表的行数。检查一下。

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

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 2014-03-18
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2020-01-11
      • 2023-04-11
      • 2014-08-08
      • 1970-01-01
      相关资源
      最近更新 更多