iPhone:技术UITableController告诉它需要更新的前一个UITableController

时间:2010-11-07 11:22:22

标签: iphone objective-c

我有一个带有两个UITableViewControllers(A和B)的UINavigationController。

首先显示A,当用户在显示屏上点击一行时,A加载UITableViewController B并将其推入堆栈。

然后,用户可以更新B的UITableView中的某些数据,这可能导致A的UITableView上的轻敲行需要更新。

我正试图解决的问题是UITableViewController B让UITableViewController A知道它需要更新行的最佳方法。

我已经想到了许多不同的方法,包括:

  • 拥有一个存储IndexPath和B的引用,以便在调用ViewWillAppear时,它可以检查B的属性,然后在IndexPath重新加载单元格。

  • 通过通知系统监视核心数据NSMangedObjectContext。两个控制器都从核心数据中提供数据。 A仍然需要存储IndexPath。

  • B以某种方式(通过UINavigationController?)查找前一个控制器(A)并告诉它需要更新该行。

这些似乎都没有。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

为什么不使用NSNotificationCenter?

答案 1 :(得分:1)

第二个对我来说是最优雅的(你可以用KVO而不是通知来调整它)。

并且因为它没有加载B他需要更多的责任(B甚至不知道A),而第三个选项使B通知A.加上它将比第一个更独立于变化(因为你有义务在加载A之前检查一下情况,并使用ViewWillApperar:,但这种情况将来可能会发生变化)