我有原型细胞,在这个细胞中有一个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]
}
}
}
我还读到一个解决方案是实现协议,但我是初学者,我需要一步一步的指导。 希望有人可以帮助我!
答案 0 :(得分:0)
你走在正确的轨道上。在tableviewcontroller中定义
@IBAction func clicked(){
self.performSegueWithIdentifier("toSecondController", sender: button)
}
你可以保留
tableView.deselectRowAtIndexPath(indexPath, animated: true)
你的didSelectRowAtIndexPath中的行。不要忘记将您的ibaction连接到故事板中的按钮。