我无法让 UIViewController 子类处理来自子视图之一的触摸事件。这是层次结构:
UIViewController
|
MYGeneric_UIVC
|
MyAppSpecific_UIVC----- UIView[view_all]
|
+-- UIView[view_top] (top section of screen)
+-- UIControl subclass[view_middle] (middle section)
+-- UIView[view_bottom] (bottom section)
触摸事件一直在 view_middle(UIControl 子类)中工作,但我意识到为了修改 view_top 和 view_bottom 中的 UILabel 文本以对 view_middle 中发生的事情做出反应,我应该改为处理 MyAppSpecific_UIVC 中的事件(而不是发送消息围绕使用我看到其他人建议的指针和委托,这似乎有点混乱)。
所以我从 view_middle 中删除了 4 个触摸事件处理方法,并将它们添加到 MyAppSpecific_UIVC 中。我认为应该发生的是,如果 view_middle 不处理事件,那么它应该再次尝试向上提升层次结构(view_all,然后是 MyAppSpecific_UIVC)。
但是 MyAppSpecific_UIVC 从来没有收到任何触摸事件,我也尝试过 view_all 但这也不起作用。
也许笔尖文件链接的东西可能是错误的?该文件的所有者是 MyAppSpecific_UIVC。文件所有者的“视图”指向“view_all”。
view_middle (UIControl) 的“已发送事件”是否应该指向 IB 中的任何内容?
view_all 是否应该启用用户交互(它已关闭)?
我正在使用以下方法加载 nib 文件:
nibObjects = [[NSBundle mainBundle] loadNibNamed:resource owner:self options:nil];
请问有什么建议吗?