我在基于 Nib 的视图中有一个按钮,它的行为不像按钮(永远不会调用目标方法)。我试图动态添加按钮,但它没有帮助。
我将尝试描述应用程序结构(因为我怀疑它可能会导致此问题)并且我可能没有使用正确的设计模式。
视图A绑定到控制器AC。(从根控制器中的 nib 加载并推送到导航控制器。)
视图 A 嵌入了多个子视图。让我们称其中之一为A'。
在 AC::viewDidLoad 方法中:
我将 3 个视图控制器a、b、c加载到 AC 的成员变量中。
根据应用程序设置,我将这些控制器之一的视图添加为 A' 的子视图
本质上在 AC::viewDidLoad 方法中:
[A' addSubView:(a.view)];
现在 a.view 有一个按钮(已标记)。我搜索该标记。并向其动态添加目标方法。此时 a.view 显示为 A' 的子视图,并且该按钮也可见。伟大的。
但是触摸交互没有发生,或者触摸动作被我的方法以外的其他人使用。
我尝试了很多变体,但执行从未达到我的方法。我什至尝试将目标添加到所有 touchUpEvents。没有。我检查了启用事件中的控制值,这是正确的。该按钮只是以某种方式被禁用。我用一个视图编写了一个简单的应用程序,并做了同样的事情,它奏效了。所以我认为这与我将多个部分组合在一起的方式有关。
有任何想法吗?
我希望我有像 Spy++ 这样的东西,在那里我可以看到消息队列并查看谁在使用这些消息而不是我的应用程序,甚至查看类对象。我是这个平台的新手。 我之前与此的斗争是在这个线程上。