不会调用cellForRowAtIndexPath

问题描述 投票:1回答:5

我用很少的标签和一个UITableview构建UIView。问题是,当我加载视图时,方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 永远不会被打电话代码:

-(void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];

  m_ShopSalesTable =[[UITableView alloc]init]; //this is the UITableView    
  m_ShopSalesTable.delegate = self; 
  m_ShopSalesTable.dataSource = self;   
  [self.view addSubview:m_ShopSalesTable];
  [m_ShopSalesTable reloadData];
}

我把UITableViewDelegateUITableViewDataSource>放在了班级的宣言中,但没有任何帮助。

iphone objective-c
5个回答
1
投票

您正在初始化没有框架。你这样做:

[[UITableView alloc]init];

我会这样做:

[[UITableView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, *setYourWidthHere*, *setYourHeightHere*)];

1
投票

我遇到了从未调用过cellForRowAtIndexPath的问题。我有几个问题:

  • 我的tableView没有连接到我的.xib文件中
  • 我填写的数据来自一个http委托回调,所以我不得不使用performSelectorOnMainThread()
  • 最后,我正在使用分组视图,所以我的错误是我没有在我的表中添加一个部分。

花了大约5个小时试图解决这个问题,希望它可以帮助别人!


0
投票

您是否将tableView数据源设置为实现上述方法的类?你是否为-numberOfSectionsInTableView:和-tableView:numberOfRowsInSection返回了一个非零数字:?您的tableview数据源方法是否被调用?


0
投票

我没有看到你将tableview分配到m_shopSales的位置试试:

self.tableView=m_ShopSalesTable;

reloadData之前

此外,m_ShopSalesTable在设置self.tableView后发生泄漏。


0
投票

正如Kalle在另一个答案的评论中提出的那样,你从numberOfSections方法返回了什么?在从模板创建的默认值中,我认为这会返回零,这在某些情况下会让我感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.