超级视图消失时通知子视图控制器

时间:2014-11-15 09:17:46

标签: ios objective-c

在我的应用程序中,我添加了一个根视图控制器,它将另一个视图控制器的视图视为子视图。当我从根导航(推送)到另一个视图控制器时,根中的子视图不会调用ViewWillDisappear方法。如果子视图的父级将消失,我怎样才能通知子视图的视图控制器?有没有办法用KVO做到这一点?我想要一个解决方案,使子视图控制器完全独立于父视图控制器(不使用委托或通知)。我想知道是否有一种方法可以将孩子添加为观察者并在父母消失的情况下得到通知。 (注意:子项具有指向父视图控制器的属性)。

1 个答案:

答案 0 :(得分:2)

如果您遵循正确的View Controller Containment礼节,您应该获得所有正常的视图生命周期调用。

以下是一些有用的指南。

http://www.objc.io/issue-1/containment-view-controller.html

https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html

它基本上归结为告诉VC它即将被添加为子VC

[childVC viewWillMoveToParentViewController:self];

将视图添加为子视图

[self.view addSubview:childVC.view];

并将VC添加为childVC

[self addChildViewController:childVC];