3

我试图让我的按钮在被点击时推送到一个新的视图控制器。我尝试了许多不同的方法,但它不会触发我链接到的功能。我还检查了我的图层的 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")
}
4

2 回答 2

4

这一行是错误的:

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

您不能self在属性声明初始化程序中指定为操作目标,因为由 指定的实例self尚不存在。没有错误或警告(我认为这是一个错误),但从未调用过 action 方法。

将该作业移至别处并重写它,如下所示:

self.playButton.addTarget(self, action: #selector(MainPageCell.buttonTapped), for: .touchUpInside)
于 2019-04-14T01:02:21.690 回答
0

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

于 2019-04-13T23:41:52.410 回答