Swift - SwipingController 程序化 - 按钮不起作用

Swift - SwipingController Programmatic - button doesn't work

我创建了 SwipingController 应用程序。 该应用程序应该具有使用手势滚动的功能和带有 2 个按钮和 UIPageControl 的管理栏。

现在,这些按钮应该只在控制台中打印一条文本消息,但实际上并没有。

 let nextButton: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("NEXT", for: .normal)
    button.setTitleColor(.black, for: .normal)
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
    button.addTarget(self, action: #selector(handleNextButton), for: .touchUpInside)

    return button
}()
@objc func handleNextButton() {
    print("Next Botton Pressed")
}

我想在一个单独的文件中添加整个页面管理栏。

当它转到主控制器时,整个功能都起作用了。

我不想粘贴所有代码,所以它给了一个 link 到 git

https://github.com/SebaKrk/SwipingControllerProgrammatic.git

Picture from simulator

问题是您在 UIButton

的设置代码中正确设置了目标
let previousBotton : UIButton = {
        let button = UIButton(type: .system)
        button.setTitle("PREV", for: .normal)
        button.setTitleColor(.black, for: .normal)
        button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
        button.addTarget(self, action: #selector(handlePreviousButton), for: .touchUpInside)
        return button
    }()

似乎 self 此时尚未初始化。因为此代码是 运行,而您的 init 是 运行。

所以你必须在调用super.init之后设置按钮的target才能起作用。