代码之家  ›  专栏  ›  技术社区  ›  drekka

iPhone:technologyuitablecontroller告诉上一个UITableController它需要更新

  •  0
  • drekka  · 技术社区  · 14 年前

    首先显示A,当用户点击显示器上的行时,A加载UITableViewController B并将其推送到堆栈上。

    然后,用户可以更新B的UITableView中的一些数据,这可能会导致A的UITableView上的点击行需要更新。

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

    我想到了很多不同的方法,包括:

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

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

    这些看起来都不那么优雅。

    2 回复  |  直到 14 年前
        1
  •  1
  •   rano    14 年前

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

    因为它没有给B加载他需要的更多职责(B甚至不知道A),而第三个选项使B通知A。另外,它将比第一个选项更独立于更改(因为您必须在加载A之前检查情况,并且您使用ViewWillApperar:,但这种情况在未来可能会改变)

        2
  •  1
  •   Constantine Fry    14 年前

    为什么不使用NSNotificationCenter?