我可能有很多嵌套列表。例如
我有一个列表并包含一些文件夹,当用户点击它时,我在同一个tableview中显示文件夹的内容..而且这个内容也可能有一些文件夹,可以在用户点击它时,它也显示相同的tableview。
但是tableview的每种类型的列表都可以不同。例如,第一个文件夹的列表是X类的列表,但第二个文件夹可以是Y类..
我做了一些事情但在某些情况下它无法正常工作。所以我不知道如何解决这种嵌套列表。
作为计划, 文件夹1-> (文件夹X,文件夹Y,文档1,文档2) 如果用户点击文件夹X
文件夹X - > (文件夹a,文件夹b)
但是这个列表(文件夹X,文件夹Y,文档1,文档2)是X的类,如List 这个列表(文件夹a,文件夹b)是Y类,如List
因为webservice就这样发送给我..
我知道这很复杂,但我希望很清楚。
我正在使用Xamarin.ios,但对于objective-c无关紧要。我只是寻求可能的解决方案。像通用列表一样?
答案 0 :(得分:1)
<强> 1。嵌套列表:
在您的视图控制器中,保留一个&#34;所选对象的列表&#34; (它会表现为堆栈)。选择单元格时,将相应的文件夹/ document / ...对象添加到selectedObjects
列表/堆栈。如果您返回,请删除最后一个元素。在显示表视图的对象时,请获取列表/堆栈中的最后一个条目,您知道&#34;您所在的位置&#34;。
示例用例跟随您的示例:
selectedObjects
为空selectedObjects
selectedObjects
的末尾(列表现在有两个条目&#34;文件夹1&#34;和&#34;文件夹X&#34;)selectedObjects
删除最后一个条目,现在只包含&#34;文件夹1&#34; selectedObjects
获取最后一个条目,现在是&#34;文件夹1&#34; <强> 2。不同的课程:
如果没有别的办法,你可以创建一个基类 - 比如 - CellData
。然后,对于从Web服务获得的每个不同的类,创建一个子类 - 比如 - FolderCellData
和DocumentCellData
。每个子类都包含对从Web服务获得的实际实例的引用。然后,您可以使用CellData
列表来保存对类X和Y的引用。
会有代码&#34;决定&#34;要使用哪个CellData
子类,具体取决于webservice中的类。这些决定也可以放在渲染中(决定使用哪个UITableViewCell
?)或者在用户输入处理中(已经点击了哪个单元格 - &gt;对象列表中的哪个类?)。所以你也可以使用NSObject
的列表,并且不必为webservices类维护镜像类层次结构。