1

我无法让 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];

请问有什么建议吗?

4

1 回答 1

0

将您的 Uiview 类更改为 UIControll 它将接受触摸事件。

于 2012-04-16T16:43:35.317 回答