Swift - 从 CollectionViewCell 中的 UIButton 推送到 ViewController



我正在尝试使我的按钮在点击时推送到新的视图控制器。我已经尝试了许多不同的方法,但它不会触发我链接到的功能。我还检查了图层的 3D 堆栈视图,按钮位于顶部且可单击,即使我检查背景颜色,它也没有被其他任何东西覆盖。

有人对我做错了什么有任何想法吗?

现在我正在尝试让按钮在控制台中打印出句子,但是每当我按下它时,字符串都不会弹出,所以我还没有费心将其连接到视图控制器。

另外,我正在编写这个没有故事板的应用程序。

这是我下面的代码。

它位于声明为 UICollectionViewCell 的 MainPageCell 类下

private let playButton: UIButton = {
    let button = UIButton()
    button.setTitle("", for: .normal)
    button.backgroundColor = .clear
    button.translatesAutoresizingMaskIntoConstraints = false
    button.addTarget(self, action: #selector(MainPageCell.buttonTapped), for: .touchUpInside)
    return button
}()
@objc func buttonTapped() {
    print("I PRESSED THE BUTTON")
}

这一行是错误的:

button.addTarget(self, action: #selector(MainPageCell.buttonTapped), for: .touchUpInside)

不能在属性声明初始值设定项中将self指定为操作目标,因为 self 指定的实例尚不存在。没有错误或警告(我认为这是一个错误(,但永远不会调用操作方法。

将该作业移到其他地方并重写它,如下所示:

self.playButton.addTarget(self, action: #selector(MainPageCell.buttonTapped), for: .touchUpInside)

也许尝试在 UIView 类下定义您的按钮操作,我以前遇到过这样的问题,只有在将其链接到视图类时才有效,祝你好运

最新更新