重新加载UITableView在IOS5中无法正常运行

时间:2012-07-25 16:05:58

标签: iphone uitableview reload

UITableview reloadData函数未调用cellforRowAtIndexPath方法。以下我尝试过的事情:

  1. 致电[self.myTableView reloadData];
  2. reloadData上调用ViewWillAppear方法。
  3. 也是self.myTableView.delegate=self;self.myTableView.datasource=self
  4. 我还使用NSLog测试了行数正在正确更新。
  5. 数据源和委托在故事板中连接。

4 个答案:

答案 0 :(得分:0)

您的观点是否符合UITableViewDelegateUITableViewDatasource

它是否至少实现了这些协议中所有必需的方法?另外,没有必要说self.myTableView,如果你在班里工作,你可以说myTableView

听起来很傻,但是你忘了保存你的故事板吗?我不止一次这样做过。

答案 1 :(得分:0)

我猜您还没有在.h文件中声明委托。

实施例

@interface ClassName:UIViewController <UITableViewDelegate> 

答案 2 :(得分:0)

您是否实施了该方法?

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1; //Return the number of sections you want
}

很容易忘记,因为默认情况下会返回0.

如果你不这样做,那么tableview认为它没有任何部分,也不会要求任何行。

答案 3 :(得分:0)

确保设置表格视图的委托:

tableView.delegate = _an_object_that_conforms_to_UITableViewDelegate_;

这通常是视图控制器,您已在其中声明了表视图,因此您将拥有:

tableView.delegate = self;

只需确保包含表视图并充当其委托的视图控制器将其自身声明为UITableViewDelegate:

@class MyViewController <UITableViewDelegate> {

  UITableView *tableView;
  ...