Segue 和 Button 以编程方式快速
Posted
技术标签:
【中文标题】Segue 和 Button 以编程方式快速【英文标题】:Segue and Button programmatically swift 【发布时间】:2017-06-12 16:47:07 【问题描述】:我正在使用 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
【问题讨论】:
Adding button programmatically to perform segue的可能重复 【参考方案1】:创建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
【讨论】:
OP 没有使用故事板进行转场,他动态地创建了按钮... segue 不是在按钮单击时创建的,它在编写时调用它 self.performSegue(withIdentifier: "segueToNext", sender: self) @user1781908 ,接受它。你没有在 IB 上按下按钮。我建议你在 IB 中创建 segue 并设置一些标识符。当您在代码中创建按钮时。您需要为它的点击事件添加目标。在那个目标上你需要使用performSegue(withIdentifier: "segueIdentifer", sender: self)
。
@harshalvalanda 完美,我需要这个!【参考方案2】:
在你的情况下,如果你使用 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
【讨论】:
以上是关于Segue 和 Button 以编程方式快速的主要内容,如果未能解决你的问题,请参考以下文章
在哪里以编程方式设置 TableViewController 的 UIBarButtonItem 和单元格“segue”