1

我有很多定制 UINavigationBars 的经验,发现不费吹灰之力就能让它做我想做的事是一件非常痛苦的事情。因此,我编写了自己的自定义 UIView,其行为就像 UINavigationBar 一样,并且可以完全轻松地自定义。但是,我遇到了一个问题,当导航控制器将新控制器推入堆栈时,我的自定义视图停止接收触摸事件。

为了更清楚地说明这一点,我的应用程序加载并显示了一个视图控制器,在 viewDidLoad 方法中,我创建了自定义导航栏并将其添加到控制器的视图中。以编程方式创建导航控制器,并将视图控制器推送给它。此时我的自定义视图位于顶部并接收触摸事件。当我将另一个视图控制器推送到导航控制器的堆栈时,我的自定义视图仍在顶部且可见,但未接收事件。

所以我的问题是如何让我的自定义导航栏回到响应者链中?

谢谢你的帮助!

4

1 回答 1

1

如果您不必支持 iOS < 5.0,您应该尝试使用 UINavigationController 的- (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass方法添加 UINavigationBar,而不是手动添加。

于 2012-10-29T15:38:51.197 回答