ios - 从深度嵌套的 UIView 快速调用方法

标签 ios swift uiview

我对在动态添加的 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 子类。

@IBAction in your custom UITableViewCell subclass

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

关于ios - 从深度嵌套的 UIView 快速调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843401/

相关文章:

ios - 从其他 View Controller 访问 IBOutlet 按钮

ios - 看起来 String 类型不再提供 contentsOfURL 初始值设定项(Xcode 7 更新后)?

ios - 动态大小 UICollectionView 单元格

ios - 如何将 vCard 转换为 CNContact

ios - 如何使用动态单元格设置 View (UITableview)的背景?

ios - 我无法捕获 WKWebView 的屏幕截图

iphone - 如何从 iPhone 中的某一天获取日期?

swift - 如何从剩余时间快速运行倒数计时器?

swift - 为什么整数不符合 AnyObject 协议(protocol)?

ios - 添加 UIView 并使用自动布局重新计算约束