你如何使用UIbutton在segue的结构中

时间:2017-11-04 00:19:09

标签: swift struct uibutton segue

对于斯威夫特和苹果来说,我是非常新的,如果这是一个糟糕的问题,那就很抱歉。 即时通讯使用表视图和xib xib文件来填充单元格。我需要单元格中的按钮来切换到视图控制器并将Int传递给全局值。我知道你不能使用这个功能。那么正确的方法是什么? 以下是我试过的内容

 struct scale {
    let cell : Int!
    let name : String
    let og : String
    let fg : String
    let abv : String
    let date : String
    let image : UIImage
    let button : UIButton
}



class TableViewController: UITableViewController {

    var scaleView1 = [scale]()


    override func viewDidLoad() {
        scaleView1 = [scale(cell : 1, name : "test1", og : "11", fg : "11", abv : "11", date : "11-11-1111", image:  imageLiteral(resourceName: "live-preview-potato"),button : segueFunc(i: 0)),
                      scale(cell : 1, name : "test2", og : "22", fg : "22", abv : "22", date : "22-22-2222", image:  imageLiteral(resourceName: "live-preview-potato")),
                      scale(cell : 1, name : "test23", og : "232", fg : "223", abv : "223", date : "322-22-2222", image:  imageLiteral(resourceName: "live-preview-potato")),
                      scale(cell : 1, name : "test1", og : "11", fg : "11", abv : "11", date : "11-11-1111", image:  imageLiteral(resourceName: "live-preview-potato"))]

    }

    func segueFunc(i: Int){
        performSegue(withIdentifier: "ViewController2", sender: nil)
        thing = i
    }

1 个答案:

答案 0 :(得分:0)

欢迎来到IOS发展世界。在视图和控制器之间进行通信的常用方法是目标/操作概念。在您的示例中,您希望定位您的UIButton(= view)并通过单击此按钮(=您的控制器处理的操作)执行segue。在主要解释之后,你需要这样:

  1. 将您的UIButton添加到自定义单元格中。
  2. 添加操作以在您的UIButton上执行segue,如下所示:

    button.addTarget(target: self, action: #selector(segueFunc), for controlEvents: .touchUpInside)。所以你要说的是,当有一个touchUpInside事件发生时(=当用户点击它时),请添加我,按钮,作为动作segueFunc的目标

  3. 像您一样实施您的功能segueFunc,但您无法传递任何参数
    func segueFunc(){ performSegue(withIdentifier: "ViewController2", sender: nil) }

  4. 最后,您需要实现函数prepare以准备转换到下一个视图控制器。在这个方法中,您将传递像int和您想要的任何数据: func prepare(for segue:UIStoryboardSegue, sender: Any?)