我对在动态添加的 subview 上调用方法感到非常困惑。我知道我犯了一个新手错误,但我就是想不通。
我的层次结构看起来像这样:
TableView
- TableViewCell
- CustomContainer (UIVIew subclass)
- Widget (UIView subclass)
- myButton
Widget
通过 view.addSubview(widget)
添加到 CustomContainer
我在 myButton 上有一个 @IBAction,我想调用在 Widget
类(@IBAction 下方)中声明的 myFunc
:
@IBAction func myButtonTapped(sender: AnyObject) {
myFunc()
}
...
func myFunc(){
print("myButton was just tapped")
}
当我点击按钮时,我在控制台中收到无法解决的错误:[myApp.CustomContainer myButtonTapped:]: unrecognized selector sent to instance
我的目标是将与 Widget 相关的所有方法都包含在 Widget 类或类似的地方,从而使其合乎逻辑且易于移动。
我尝试过很多不同的东西,但老实说,我现在只是在黑暗中摸索。如果有人可以提出一种方法,我将不胜感激。
最佳答案
好的,经过一些快速调查和一个小演示:将您的 @IBAction
函数添加到您的自定义 UITableViewCell 子类。
将带有 UIButton 的 Widget 添加到 CustomContainer 时,确保它的选择器是 YourCustomUITableViewCellClass.myButtonTapped。您可能还需要考虑的另一个步骤是重构您的代码并且可能不使用如此深的层次结构。
关于ios - 从深度嵌套的 UIView 快速调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843401/