首先抱歉,如果格式不正确,首次执行此操作。我一直在使用stackoverflow来查找很长一段时间的帮助,这非常有帮助(谢谢大家),但这是我第一次发布自己的问题。这个问题已被多次询问,但是当我调用[myTable reloadTable]时,调用numberOfSectionsInTableView和numberOfRowsInSection方法,但不调用cellForRowAtIndexPath。reloadData calls numberOfSections,numberOfRows,not cellForRowAtIndexPath
每一个答案,当搜索一直是一个变化我看到: 1)的tableView为零 2)numberOfRowsInSection是0 3)的tableView的委托/数据源未设置 4)调用reloadTable在错误的UITableView 。
这些都不是我的情况,所以我想知道还有什么可能是错的。
我在做什么: 我有一个自定义的uitableviewcell和一个按钮,当按下按钮时我想改变单元格的属性(例如,让我们只是说我想改变单元格标题为“按下按钮”)。然后我想暂停一下,然后删除单元格。
不知道这是否重要,但我的tableView是在UIViewController中,而viewController是委托和数据源。
我有一个方法(下),当按下按钮时会触发,并且单元属性根据需要进行更改,但是当我尝试刷新表以显示更改时,它不起作用。第一次调用[remTable reloadData]时,调用numberofsectionsintableview和numberofrowsinsection而不是cellforrowatindexpath。但是,第二次[remTable reloadData]被调用时,所有三个方法都被调用,并且所有的方法都能正常工作。
[email protected]"BUTTON PRESSED";
[remTable reloadData];
NSLog(@"sleep");
sleep(1);
[remList removeObject:doneReminder];
[remTable reloadData];
为了测试这一点,我把的NSLog语句在numberofsections,numberofrows和cellforrow开始时,输出是方法,接着是编号的名称(numberofsections/numberofrows)。
输出:
numberofsections 1
numberofrows 3
sleep
numberofsections 1
numberofrows 2
cellforrow
任何想法,为什么cellforrow不是被称为第一次?在此先感谢,请让我知道是否还有其他事情可以补充说明。
我很确定这是正确的答案。 – 2012-02-16 03:36:41
非常感谢你的详细解释,这正是发生了什么,你的建议完美地解决了它。再次感谢您的及时,明确的回应,不能要求更好的答案。 – jasonm 2012-02-16 03:43:51