Swift-从CollectionViewCell中的UIButton推送到ViewController

时间:2019-04-13 23:12:23

标签: ios swift uicollectionview

点击时,我试图将按钮推到新的View Controller。我尝试了许多不同的方法,但是它不会触发与之链接的功能。我还检查了图层的3D堆栈视图,并且该按钮位于顶部并且可以单击,即使我检查背景色时也没有被其他任何东西覆盖。

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

现在,我试图使按钮在控制台中打印出来,但是每当我按下该按钮时,字符串都不会弹出,因此我还没有麻烦将其连接到视图控制器。 / p>

此外,我正在编写没有情节提要的应用程序。

这是我的下面的代码。

它在声明为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")
}

2 个答案:

答案 0 :(得分:1)

此行是错误的:

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

您不能在属性声明初始化程序中将self分配为操作目标,因为self指定的实例尚不存在。没有错误或警告(我将其视为错误),但是从未调用该操作方法。

将该作业移至其他位置并重写,如下所示:

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

答案 1 :(得分:0)

也许可以尝试在UIView类下定义按钮动作,我以前遇到过类似的问题,只有在将其链接到View类后,运气好