我正在使用iCarousel,我必须创建自己的按钮。我想将编程按钮中的数据传递给另一个视图,但我没有segue标识符,因为我以编程方式创建了按钮。我不知道是否可以通过编程方式创建segue的标识符。
button.addTarget(self, action: #selector(buttonAction3), for: .touchUpInside)
button.setTitle("\(titulos[index])", for: .normal)
tempView.addSubview(button)
let myImage = UIImage(named: "modo4.png") as UIImage?
button.setImage(myImage, for: .normal)
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
self.present(viewController, animated: false, completion: nil)
if segue.identifier == "" {
if let destination = segue.destination as? Modo1ViewController {
destination.nomb = nombres
}
}
答案 0 :(得分:17)
创建seuge
指定标识符
和你的按钮目标
@IBAction func button_clicked(_ sender: UIButton) {
self.performSegue(withIdentifier: "segueToNext", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueToNext" {
if let destination = segue.destination as? Modo1ViewController {
destination.nomb = nombres // you can pass value to destination view controller
// destination.nomb = arrayNombers[(sender as! UIButton).tag] // Using button Tag
}
}
}
答案 1 :(得分:0)
在您的情况下,如果您使用 self.present 并且您想要在视图之间发送数据。试试这个:
let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "modo") as! Modo1ViewController
viewController.nomb = nombres
self.present(viewController, animated: false, completion: nil)
我不知道如何设置segue的标识符,但我认为上面的代码可以帮助
如果您想更轻松地工作,可以在IB(Interface Builder)中创建segue并设置它的标识符,然后使用
performSegue:withIdentifier:sender