Segue и Button программно быстрые
Я использую iCarousel, и я должен создать свою собственную кнопку. Я хочу передать данные от кнопки, созданной программным способом, в другое представление, но у меня нет идентификатора перехода, потому что я создал кнопку программным способом. Я не знаю, возможно ли создать идентификатор сеанса программно.
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
}
}
2 ответа
Решение
Создать сеуг
Назначить идентификатор
и ваша цель кнопки
@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
}
}
}
В вашем случае, если вы используете 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, но я думаю, что приведенный выше код может помочь
Если вы хотите сделать работу проще, вы можете создать segue в IB (Interface Builder) и установить его идентификатор, а затем использовать
performSegue:withIdentifier:sender