我到处寻找答案,并且尝试实现它,但是没有任何效果。基本上,我需要能够观察VC视图的子视图数组中的更改。如果从该数组中删除了一个现有视图,我希望得到有关它的通知并运行一些代码。
可能吗?
编辑-更多信息
我正在尝试修复一个奇怪的极端情况错误,在该情况下,快速点击UISearchDisplayController的UISearchBar(非常自定义)会导致sdController(或更确切地说是navBar效果中的托管searchBar)从视图中消失,但是sdController仍然是活性。这意味着navBar停留在-y的原点,并且下面的tableView不可滚动。
我最初的想法是进入sdController处于活动状态,但UISearchDisplayControllerContainerView不在视图层次结构中。我尝试在VC的viewDidLayoutSubviews中对此进行测试,但是,当您点击搜索栏并启动sdController动画时,sdController处于活动状态,并且UISearchDisplayControllerContainerView不在视图层次结构中:(。
与Apple框架中的大多数属性一样,subviews
它也不符合KVO要求。
如果您控制子视图或超级视图,则可以通过子类化和覆盖来观察视图层次结构的变化:
在超级视图中,您必须覆盖...
- (void)willRemoveSubview:(UIView *)subview
...或者,如果您控制子视图,则可以覆盖...
- (void)willMoveToSuperview
在删除视图之前,将同时调用这两种方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句