我正在尝试在表格视图中选择一个单元格,一旦我点击导航菜单中的“完成”按钮,我想println()
该行的索引,例如0,1,2等
当你点击“完成”按钮时会触发一个segue,我想要抓住prepareForSegue
当我使用以下单击单元格时,我可以获取索引:
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
然后在该函数内部:
performSegueWithIdentifier("mySegue", sender: indexPath)
但我怎么能调整它来使用:
@IBAction func doneButtonDidTouch(sender: AnyObject) {
performSegueWithIdentifier("mySegue", sender: self)
}
答案 0 :(得分:2)
您可以调用indexPathForSelectedRow
来获取按钮处理程序中的indexPath:
@IBAction func doneButtonDidTouch(sender: AnyObject) {
if let indexPath = self.tableView.indexPathForSelectedRow() {
performSegueWithIdentifier("mySegue", sender: indexPath)
}
}
如果在按下完成按钮时没有选定的行,则不会有indexPath
并且不会发生segue。
答案 1 :(得分:0)
您可以创建一个类范围的变量,并在每次选择单元格时将单击的选定单元格的索引路径保存到它。然后传递该值以准备segue。但是要知道在传入的视图控制器上需要一个变量来接收你传递的值。
所以
var selectedRow
然后在里面
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
您可以为该变量指定行号或您可能希望从该行传递的任何其他值。
selectedRow = indexPath.row
最后当你单击完成按钮时,在准备segue时你可以使用segue.destinationViewController捕获传入的视图控制器
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "mySegue") {
var nextViewController = (segue.destinationViewController as nextViewControllerClass)
nextViewController.receivingValueVariable = selectedRow
}
}
不要忘记分配一个变量来接收你传递的值。
它可能会像这样,在你的下一个视图控制器的类中
class nextViewControllerClass {
var receivingValueVariable:Int