【问题标题】:UITableview delegate is not being called未调用 UITableview 委托
【发布时间】:2014-03-18 05:18:30
【问题描述】:
  1. 我已将 tableview 拖到视图控制器中。
  2. 我已经为表创建了一个插座属性。

    @property (strong, nonatomic) IBOutlet UITableView *tableView;

  3. 我已经在界面中添加了委托

    UITableViewDelegate

    4.将委托注册为:
    tableView.delegate=self;

并添加了tableview的所有功能,这些功能通常在之前有效:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

还有其他人。 函数在开始时没有被调用。

我在这里错过了什么?

【问题讨论】:

  • 它们是数据源方法,而不是委托方法。
  • 我犯了几次这个错误。迟早你会学会识别症状。 (如果一切都失败了,请仔细查看规格。)

标签: ios objective-c uitableview


【解决方案1】:

您缺少 tableView 的数据源。这些方法出现在数据源上,而不是委托上。

也设置tableView.dataSource=self;,你应该很高兴。

UITableView 有两个代表delegatedataSource,因为它们处理不同的焦点区域。

【讨论】:

  • 没错,它确实解决了它。但是为什么当我创建了一个 uitableviewcontroller 的类时,没有它就可以工作?
  • 当你使用 UITableViewController 时,当 UITableViewController 加载时,内部 tableView 的 dataSource 和 delegate 设置为 self。
【解决方案2】:

您可能会遗漏以下内容之一。

1.确保您已通过 Xibs 或代码将 TableView 的数据源和委托设置为当前视图控制器。

2.请在下面的标题中提及您必须实现的协议。

@interface ViewController()<UITableViewDataSource,UITableViewDelegate>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多