【问题标题】: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。所以问题是要知道一个确定的表格视图是否有一个选定的单元格。让自己清楚?谢谢

标签: iphone ipad uitableview


【解决方案1】:

您的方法是正确的 - 如果未选择任何单元格,则 indexPathForSelectedRow 确实返回 nil。但是,如果您尝试向 nil 对象发送消息并使用返回的值,它将为 0,因此您需要在尝试从中获取单元格的行之前测试路径值是否为 nil:

NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
   row = [path row];
   ...
}
else{
 // No cell selected
}

附: nil 只是一个类型转换的 0,因此在实践中它们是相同的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多