UITableView didSelectRowAtIndexPath ,与部分行中显示的值不同!

Posted

技术标签:

【中文标题】UITableView didSelectRowAtIndexPath ,与部分行中显示的值不同!【英文标题】:UITableView didSelectRowAtIndexPath , different value from what is displayed in section rows! 【发布时间】:2011-05-09 06:51:19 【问题描述】:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row];
    _XMLDetailsView.aDirectory = aDirectory;

if (indexPath.section == 0) // First section

    _XMLDetailsView.aDirectory = aDirectory;

else if(indexPath.section == 1) // Second Section

    Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row +[listOfItems count]];
    _XMLDetailsView.aDirectory = aDirectory;


else if(indexPath.section == 2) // Third Section

    Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row +[listOfItems count] +3];
    _XMLDetailsView.aDirectory = aDirectory;


else if(indexPath.section == 3) // Fourth Section

    Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row +[listOfItems count] +9];
    _XMLDetailsView.aDirectory = aDirectory;


这是从某个部分选择某行值的正确方法吗?因为当我为例如“C”部分做选择行时索引路径时,假设显示从数组 (4) 开始的值。但在 "C" 部分,它再次显示来自 array(0) 的值。我被困了这么久,有人有任何建议或帮助吗?

【问题讨论】:

【参考方案1】:
else if(indexPath.section == 2) // Third Section


    if(indexPath.row >4)
    
        Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row +[listOfItems count] +3];
       _XMLDetailsView.aDirectory = aDirectory;
    

试试这个,我认为它对你有帮助。

【讨论】:

【参考方案2】:
Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.row];

方法开头的语句使用indexPath.row 选择目录,该目录不会来自正确的部分。试试indexPath.section

 Directory *aDirectory = [appDelegate.directories objectAtIndex:indexPath.section];

【讨论】:

当我使用 indexPath.section 时,它没有帮助。 sectionA 将有 itemA sectionB 将有 itemB,itemB (假设它在该部分中有 2 个项目),然后 C 部分将有 itemC,itemC 。为什么会这样? 当我使用 indexPath.row sectionA 将有 itemA,itemB,itemC sectionB 将有 itemA,itemB 和 sectionC 将有 itemA,itemB,itemC 我想要的是 sectionA 将有 itemA,itemB sectionB 将有 itemC,itemD,itemE 等等.. 试试这个目录 *aDirectory = [appDelegate.directories objectAtIndex:indexPath.section];

以上是关于UITableView didSelectRowAtIndexPath ,与部分行中显示的值不同!的主要内容,如果未能解决你的问题,请参考以下文章

从选定索引处的表视图中的数组中删除

将数据从 didSelectRowAtIndexPath 传递到另一个视图控制器 ios7

连接 UITableView + UITableView

将 UITableView 推送到 UITableView

UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview

UITableView