我有一个由NSFetchedResultsController支持的主UITableView控制器,该视图显示按时间划分的结果列表。此视图由分段控件控制,该控件确定NSFetchedResultsController上谓词的类别和各种标志。到目前为止,一切似乎都很好。
但我对详细视图有疑问:
我希望用户能够在详细视图中导航下一个和上一个,就像默认的 ios电子邮件应用一样。
如何使用我的设置实现类似的功能?我不认为我可以将实体传递给我的详细视图并增加/减少一个id,因为前一个列表视图依赖于一些过滤谓词。
我是否需要在详细控制器中使用类似的谓词创建另一个nsfetchedresults控制器?我如何才能有效地检测当前结果之后是否没有更多,所以我可以将prev / next按钮变灰?
我可以以某种方式使用主列表视图(由nsfc支持)返回的结果集,即使它已经批处理并分段了吗?
感谢任何帮助我的大脑。
答案 0 :(得分:1)
我的第一个想法是子类NSFetchedResultsController
,以便它记住已选择进行详细查看的最新项目的索引路径。它可以为{previous >>实现(id)nextObject
,(BOOL)nextExists
等类似方法。
如果您将表视图控制器中的引用传递给详细控制器,那么您可以在那里进行反复操作,并在返回时使用当前详细信息索引路径选择同步表中的所选条目一个细胞。
唯一真正的技巧是索引路径算法,但应该通过检查sections
中的NSFetchedResultsController
数组来实现。