【发布时间】:2015-04-10 19:29:28
【问题描述】:
我想从 UICollectionView 中选择一个用户名,并将该字符串传递给另一个视图。
我可以使用“didSelectRowAtIndexPath”选择单元格。但是 prepareForSegue 函数在我的选择设置之前运行,并且 segue 传递了初始值。
我不知道如何在 prepareForSegue 覆盖中获取索引值。如果是 UITableView,我想我可以使用 indexPathForSelectedRow。
这是我所拥有的:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
selectedUsername = userNames[indexPath.row]
selectedRow = indexPath.row
println ("Cell \(indexPath.row) selected")
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "userSelectSegue") {
let nextVC = segue.destinationViewController as ViewController;
nextVC.passedUsername = userNames[selectedRow]
println("prepareForSegue")
}
}
运行这个总是通过 userNames[0] 输出窗口打印:
prepareForSegue
Cell 2 selected
编辑 1: 我基本上认为我想要以下 tableview 代码,但我无法让它为 UICollectionView 工作(即我无法获取单元格编号):
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "userSelectSegue") {
let nextVC = segue.destinationViewController as ViewController;
let indexPath = UserSelectCollection.indexPathForSelectedRow()
nextVC.passedUsername = userNames[indexPath.row]
}
}
【问题讨论】:
-
你先在哪里打电话给
prepareForSegue? -
昨天问了同样的关于表格视图的问题:stackoverflow.com/questions/29538933/….
-
@Spacedust_ 我将一个故事板转场从收集单元连接到另一个视图控制器。
标签: ios swift xcode6 uicollectionview segue