0

我有一个视图显示在navigation controller. 我subview在导航控制器的视图中添加了一个,以便它覆盖除navigation bar自身之外的所有正在显示的视图。子视图已添加,如 - ' [self.navigationController addSubView:mySubView];'

在对 的某些操作上subView,我想按顺序执行以下操作-

  1. 用动画弹出当前view controller导航栈,然后。
  2. 弹出视图控制器并且动画完成后,subview从导航控制器视图中移除

我需要这样做的原因是我需要在删除子视图之前显示导航栏标题的动画。

所以我想完成导航控制器动画的事件,然后删除子视图。

viewDidAppearviewWillAppear或者navigationController:didShowViewController:animated:没有帮助,因为 subView 覆盖了导航堆栈上的底层视图,并且这些方法永远不会被调用。

目前我只是在延迟希望动画完成后删除子视图。但我知道这不是做我想做的事的可靠方法。

有没有其他方法可以完成我需要的事件序列?

4

1 回答 1

2

子类化导航控制器,实现导航栏动画完成后调用的委托方法navigationBar:didPopItem:。您可以使用该方法删除您的子视图。

于 2013-05-31T03:45:27.507 回答