我想知道从子视图中获取某些消息的正确方法是什么。
我有一个在子视图中编辑的对象。我想在TableView中看到他们的修改。
然而,我不知道干净的方法(我不喜欢这里的单身人士)。
当Child视图消失并获得一些信息时,是否可以获得通知?
答案 0 :(得分:2)
您可以在某个UIViewController
即将消失之前及其消失后立即通知UIView
通知viewWillDisappear:
和viewDidDisappear:
。请注意,大多数UIKit对象(包括UITableView
)都是UIView
的子类。
答案 1 :(得分:1)
恕我直言,“正确”的方法是在视图的控制器(可能是您的导航控制器)或应用程序委托中实现自定义协议,并让子视图在获得viewWillDisappear
时使用它进行通信和/或viewWillDisappear
通知(如Adam的回复中所述)。同样,在父视图中,您可以刷新viewWillAppear
处理程序中的必要信息。
这样,父视图从委托中获取数据,而不是直接从特定的子视图获取,后者在您的设计中维护MVC。
答案 2 :(得分:0)
您还可以发出父级将被订阅的通知(使用NSNotificationCenter) - 这样可以获得其他类的通知。
但是如果它是一个非常严格的关系,只有子视图和主表关心,你可能应该将你的表视图控制器设置为子视图的委托,并让子视图直接调用委托(如上所述的协议是一个这样的事情好主意。)