如何在不弹出和推送的情况下更改ViewController列表(通过更改谓词)?

时间:2010-08-17 01:18:05

标签: iphone animation uitableview toggle predicate

我有一个ViewController,其视图来自带有谓词1的获取请求的数据。我想用更严格的Predicate 2重复获取请求,它将使用谓词1给出数据的SUBSET。

然后我想通过按下切换按钮在iPhone屏幕上更新(并可能设置动画)该视图,以便旧视图和新视图展开并折叠行。 (我不想以模态方式执行此操作,因为我希望用户查看哪些行来自旧行。)

我正在想像iPhone上的手机应用程序。在“最近”标签下,您会看到“全部”和“未接”按钮。当您按下这些按钮时,它会通过展开/折叠行在显示所有呼叫和仅遗漏呼叫之间切换。据我所知,这不是模态转变。

有人可以指点如何做到这一点吗?

2 个答案:

答案 0 :(得分:0)

如果您的观点是UITableView,则可以使用

的组合
-deleteRowsAtIndexPaths:withRowAnimation:

-deleteSections:withRowAnimation:

以及相应的-insert方法(如果适用)。您可以使用-beginUpdates-endUpdates批量处理多项更改(以便同时设置动画)。

我不知道你有什么方法可以做到这一点,不涉及迭代两个集合中的一个,而是在另一个集合上重复调用-indexForObject

答案 1 :(得分:0)

我找到了一种通过改变每个单元格的高度来扩展/折叠行的方法,使用tableView:heightForRowsAtIndexPath:indexPath:,如下所示: http://www.alexandre-gomes.com/?p=482

希望这对某人有帮助!