如何知道 uitableview 是不是有选定的单元格
Posted
技术标签:
【中文标题】如何知道 uitableview 是不是有选定的单元格【英文标题】:how know if uitableview has a selected cell如何知道 uitableview 是否有选定的单元格 【发布时间】:2011-07-21 11:09:38 【问题描述】:我正在开发一个应用程序,并且在某些时候我有几个 uitableview。 我想知道委托方法之外的一个动作,例如,表格视图是否有一个选定的单元格以及哪个单元格。
我尝试使用:(NSIndexPath *)indexPathForSelectedRow
,但它不起作用,因为如果我没有选定的单元格,[(NSIndexPath *) row]
返回“0”而不是 nil
你能帮忙吗?
谢谢..
【问题讨论】:
您可以将所选行的索引保存在 ivar 中。 是的,这是一个想法。我已经有一个存储所选单元格的 NSMUtablearray。由于我无法替换 NSMUtablearray 中的 nil 对象,因此无法将“i”索引初始化为 nil。所以问题是要知道一个确定的表格视图是否有一个选定的单元格。让自己清楚?谢谢 【参考方案1】:您的方法是正确的 - 如果未选择任何单元格,则 indexPathForSelectedRow 确实返回 nil。但是,如果您尝试向 nil 对象发送消息并使用返回的值,它将为 0,因此您需要在尝试从中获取单元格的行之前测试路径值是否为 nil:
NSIndexPath *path = [table indexPathForSelectedRow];
if (path)
row = [path row];
...
else
// No cell selected
附: nil 只是一个类型转换的 0,因此在实践中它们是相同的。
【讨论】:
以上是关于如何知道 uitableview 是不是有选定的单元格的主要内容,如果未能解决你的问题,请参考以下文章