来自深层嵌套UIView的Swift Calling方法

时间:2016-06-15 18:43:59

标签: ios swift uiview

我对在动态添加的子视图上调用方法感到非常困惑。我知道我犯了一个新手的错误,但我无法弄清楚。

我的层次结构如下所示:

TableView
    - TableViewCell
         - CustomContainer (UIVIew subclass)
                - Widget (UIView subclass)
                     - myButton

Widget通过CustomContainer

添加到view.addSubview(widget)

我在myButton上有一个@IBAction,我想调用myFunc类中声明的Widget(在@IBAction下面):

@IBAction func myButtonTapped(sender: AnyObject) {
        myFunc()
    }

...

func myFunc(){
    print("myButton was just tapped")
}

当我点按按钮时,控制台出现错误,我无法解决:[myApp.CustomContainer myButtonTapped:]: unrecognized selector sent to instance

我的目标是让所有与Widget类中包含的Widget相关的方法或类似的地方使这个逻辑易于移动。

我尝试了很多不同的东西,但说实话,我现在只是在黑暗中四处奔波。如果有人能提出建议,我会非常感激。

1 个答案:

答案 0 :(得分:1)

好的,经过一些快速调查和一个小小的演示:将@IBAction函数添加到自定义UITableViewCell子类中。

@IBAction in your custom UITableViewCell subclass

将带有UIButton的Widget添加到CustomContainer时,请确保它的选择器是YourCustomUITableViewCellClass.myButtonTapped。您可能还需要考虑的另一个步骤是重构代码,也许不使用如此深层次的层次结构。