在TabeViewCell中触发来自UIButton的Segue

时间:2015-08-31 21:54:30

标签: swift uitableview uibutton cell segue

我有原型细胞,在这个细胞中有一个UIButton;所以我需要从按钮到其他控制器执行segue,而不是从单元格执行。我尝试创建一个Outlet @IBOutlet var button: UIButton!并使用performSegueWithIdentifier()方法

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    self.performSegueWithIdentifier("toSecondController", sender: button)
    tableView.deselectRowAtIndexPath(indexPath, animated: true)
}

但我不知道如何设置prepareForSegue()方法......我试过这个

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    if segue.identifier == "toSecondController"
    {
        if let indexPath = sender as? UIButton//tableView.indexPathForSelectedRow()
        {
            let controller = segue.destinationViewController as! CoriViewController
            controller.coriSquadra = DataManager.sharedInstance.arrayCori[indexPath.row]
        }
    }
}

我还读到一个解决方案是实现协议,但我是初学者,我需要一步一步的指导。 希望有人可以帮助我!

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。在tableviewcontroller中定义

@IBAction func clicked(){
    self.performSegueWithIdentifier("toSecondController", sender: button)
}

你可以保留

    tableView.deselectRowAtIndexPath(indexPath, animated: true)
你的didSelectRowAtIndexPath中的

行。不要忘记将您的ibaction连接到故事板中的按钮。