我已经有很多定制UINavigationBars的经验,并且发现它是一个王室的痛苦,让它做我想做的事情而不需要付出很多努力。所以我编写了自己的自定义UIView,其行为就像UINavigationBar一样,完全可以轻松定制。但是,我遇到了问题,当导航控制器将新控制器推入堆栈时,我的自定义视图停止接收触摸事件。
为了使这一点更清晰,我的应用加载并显示一个视图控制器,在viewDidLoad方法中,我创建并将我的自定义导航栏添加到控制器的视图中。以编程方式创建导航控制器,并将视图控制器推送到该控制器。此时,我的自定义视图位于顶部并接收触摸事件。当我将另一个视图控制器推送到导航控制器的堆栈时,我的自定义视图仍然位于顶部且可见,但未接收事件。
所以我的问题是如何让我的自定义导航栏回到响应链?
感谢您的帮助!
答案 0 :(得分:1)
如果您不必支持iOS< 5.0你应该尝试使用UINavigationController的- (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass
方法添加UINavigationBar而不是手动操作。