【问题标题】:TableView is empty when used inside ViewController在 ViewController 中使用时 TableView 为空
【发布时间】:2012-09-14 17:23:54
【问题描述】:

我有一个名为

的类
@interface Appointment : UIViewController <UITableViewDelegate, UITextFieldDelegate, UIActionSheetDelegate>

{
    IBOutlet UITableViewCell *cellName;
    IBOutlet UITableViewCell *cellPhone;
    IBOutlet UITableViewCell *cellEmail;
    IBOutlet UITableViewCell *cellType;

    IBOutlet UITextField* txtName;
    IBOutlet UITextField* txtPhone;
    IBOutlet UITextField* txtEmail;
    IBOutlet UITextField* txtType;

    IBOutlet UITableView *tableView;


}

在我的故事板中,视图控制器顶部有一个图像,一个条形图,其下方是 tableView。我也连接了tableView。 tableview 的 tableViewCells 显示得很好,但是当我运行代码时整个屏幕都是空白的

1- 为什么我的 TableView 不显示单元格 2- 如何将图像设置为 TableView 的背景而不是默认值

最好的问候

【问题讨论】:

  • 如何加载表格视图和视图控制器?

标签: iphone objective-c cocoa-touch ios5 xcode4.2


【解决方案1】:

我敢打赌,您没有将tableView 的delegate 和dataSource 出口绑定到您的Appointment 视图控制器,以让tableview 知道哪个对象将提供给它(单元格使用tableView:cellForRowAtIndexPath:和其他UITableViewDataSource 方法)。

【讨论】:

  • 如果你能告诉我如何做到这一点,你就能赢得比赛:)
  • 在您的故事板中,只需右键单击并从您的TableView 拖动到您的Appointment ViewController,然后绑定提到的两个出口。实际上,就像您将一个对象的任何其他出口绑定到 Interface Builder 中的另一个一样(即,就像您将 Appointment 的“tableView”IBOutlet 绑定到您的 tableView 所做的那样,但这次以另一种顺序,不将Appointment(即tableView)的IBOutlet 绑定到对象(tableview),而是将tableView(即dataSource 和delegate)的IBOutlet 绑定到对象(实现方法的ViewController)
  • 在将 tableView 的委托和数据源链接到我的 ViewController 终止应用程序后,由于未捕获的异常“NSInternalInconsistencyException”,我开始收到此错误,原因:“UITableView 数据源必须从 tableView:cellForRowAtIndexPath 返回一个单元格:”
  • 对我来说似乎很正常,这意味着现在您的 dataSource 方法被调用而之前没有被调用,所以您走在正确的道路上。但是您可能没有正确实现您的tableView:cellForRowAtIndexPath: dataSource 方法,因此在某些情况下(可能全部)您的方法返回nil(无)而不是返回UITableViewCell。因此,您必须通过正确实施该方法来解决此问题。
  • 要了解更多信息,您应该真正阅读the dedocated Programming Guide in Apple's documentation。一切都在这里解释。
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 2020-03-19
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多