我有充分的理由采用静态UITableViewCell
设计,因为经过长时间的努力,我想出了我想要的表格格式。我在故事板中设计了所有tableView
行。
现在,只需要一行 - 在该行中加上复选标记 - 我找不到任何方法。我需要根据我的程序逻辑来做。
如果我实现数据源方法cellForRowAtIndexPath
,我也需要为所有其他单元格做一些事情。在这样做的同时,我会将我静态执行的所有格式化为其他单元格。如果我为所有其他单元格返回nil
,则它们将不会显示。
我尝试在我的UITableViewController
viewdidLoad:
NSIndexPath* NotifyRow = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:NotifyRow];
if (MYCONDITION_IS_TRUE)
cell.accessoryType = UITableViewCellAccessoryCheckmark;
else
cell.accessoryType = UITableViewCellAccessoryNone;
但是上面没有用,因为我总是得到cell=nil
。由于其内置机制,当它在故事板中具有表格设计时,它不会在self.tableView
结构中共享它。我尝试在第一个语句中更改行和节值,但所有单元格都是nil
。
如何从静态设计中挑出我想要修改的这个单元?
答案 0 :(得分:0)
发布后不久,我意识到自己的错误。我过早地调用cellForRowAtIndexPath来获取单元格 - 甚至在视图完全铺设之前。
在我的viewDidLoad中的所有内容上添加了一行,它起作用了:
[self.tableView reloadData];
所以整体看起来像:
[self.tableView reloadData];
NSIndexPath* NotifyRow = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:NotifyRow];
if (MYCONDITION_IS_TRUE)
cell.accessoryType = UITableViewCellAccessoryCheckmark;
else
cell.accessoryType = UITableViewCellAccessoryNone;