从 UITableViewCell 中的 UIButton 触发 Segue
Posted
技术标签:
【中文标题】从 UITableViewCell 中的 UIButton 触发 Segue【英文标题】:Trigger Segue from UIButton in TabeViewCell 【发布时间】:2015-08-31 21:54:29 【问题描述】:我有原型单元格,在这个单元格中有一个 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】:你在正确的轨道上。在你的 tableviewcontroller 中定义
@IBAction func clicked()
self.performSegueWithIdentifier("toSecondController", sender: button)
你可以保留
tableView.deselectRowAtIndexPath(indexPath, animated: true)
didSelectRowAtIndexPath 中的行。不要忘记将您的 ibaction 连接到情节提要中的按钮。
【讨论】:
非常感谢!但我也有 segue 的问题“uibutton 没有名为 row 的成员(第 8 行)! 将发件人:按钮更改为发件人:自己 抱歉,我无法让 prepareForSegue 正常工作……你能帮我用其他方法吗? Xcode 仍然显示以前的错误。 把 toCoriViewController 改成 toSecondController 应该全部清理干净 对不起,这是一个应对和粘贴错误......这是给我错误 controller.coriSquadra = DataManager.sharedInstance.arrayCori[indexPath.row]以上是关于从 UITableViewCell 中的 UIButton 触发 Segue的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableViewCell 中的 UIButton 触发 Segue
如何从目标c中的uitableViewCell取回文本字段数据?
从 UITableViewCell 中的 UITextField 获取数据
从 UITableViewController 继承的控制器中的自定义 uitableViewCell