使用不同的行重新加载UITableView

时间:2011-04-27 15:31:52

标签: ios objective-c iphone uitableview

我有一个UITableView设置和工作,现在我有一个小问题。我需要在视图加载时重新加载tableView的数据,而且当表视图中没有数据开始时,我无法工作的一件事是尝试重新加载数据。

基本上列表是可变长度的,并且内容是从文件加载的,我想知道的是,我是否可以强制表重新加载而不是让它忽略数据源方法,就像是什么每当调用[tableView reloadData]时就会发生。

3 个答案:

答案 0 :(得分:2)

[tableView reloadData]完全依赖于数据源方法!因此,您将看到忽略数据源方法的唯一方法是,您没有将表视图的数据源(可能是委托)设置为您想要作为数据源的对象。您可以通过Interface Builder或以编程方式设置它们,例如:

tableView.dataSource = self;
tableView.delegate = self;

答案 1 :(得分:1)

  每当视图加载时

你在哪里打电话给 reloadData ?你在 -viewDidLoad 方法中调用它吗?如果是,则可能不正确,因为 -viewDidLoad 仅被调用一次 - 当创建相应的UIViewController的视图时(在第一次使用时)。也许您应该看看 -viewWillAppear ,无论何时要显示视图,都要调用它(假设正确使用UIViewController)。

另一个可能的原因是,如果您使用 -viewWillAppear (或 -viewDidAppear ),则根本不会触发它。如果您使用自定义UIViewController层次结构,则会发生这种情况。在这种情况下,你必须亲自调用它(有例外 - 例如UINavigationController为你做这个,但是简单的 [someView addSubview:myController.view] 没有)。

另外请检查代理是否设置正确且tableView不等于nil(因为您知道消息到nil只是被忽略)。

答案 2 :(得分:0)

当你调用[tableView reloadData]时,不会忽略

数据源方法; 您是否设置了IBOUTLET和来源?