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
}
答案 0 :(得分:0)
欢迎来到IOS发展世界。在视图和控制器之间进行通信的常用方法是目标/操作概念。在您的示例中,您希望定位您的UIButton(= view)并通过单击此按钮(=您的控制器处理的操作)执行segue。在主要解释之后,你需要这样:
添加操作以在您的UIButton上执行segue,如下所示:
button.addTarget(target: self, action: #selector(segueFunc), for controlEvents: .touchUpInside)
。所以你要说的是,当有一个touchUpInside事件发生时(=当用户点击它时),请添加我,按钮,作为动作segueFunc
的目标
像您一样实施您的功能segueFunc
,但您无法传递任何参数:
func segueFunc(){
performSegue(withIdentifier: "ViewController2", sender: nil)
}
最后,您需要实现函数prepare
以准备转换到下一个视图控制器。在这个方法中,您将传递像int和您想要的任何数据:
func prepare(for segue:UIStoryboardSegue, sender: Any?)