我想要做的是捕获我的表视图控制器中的单元格的textLabel.text,并将它传递给另一个视图中的标签。经过这里的许多研究是我到目前为止有:Swift:字符串值不从tableView传递到其他视图
var valueToPass:String!
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println("You selected cell #\(indexPath.row)!")
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow();
let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
valueToPass = currentCell.textLabel!.text
println("\(valueToPass) is captured")
performSegueWithIdentifier("theSegue", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "theSegue") {
var viewController = segue.destinationViewController as FinalView
viewController.resto = valueToPass
}
}
这里是FinalView的代码,这是其中变量“Resto餐厅的生活:
class FinalView: UIViewController{
var resto:String!
override func viewDidLoad() {
super.viewDidLoad()
println("the restoname is: \(resto)")
restoLabel.text = resto
}
@IBOutlet var restoLabel: UILabel!
}
,但是当我检查是否一切正确的工作,这是我的println语句的结果:
the restoname is: nil
You selected cell #13!
Tanad Thai is captured
为什么字符串“Tanad泰国”没有穿越到“休息”的FinalView类?我非常感谢所有我能得到的帮助。
这样做了!我所做的只是移动我在didSelectRowAtIndexPath中的内容,并将其移至prepareForSegue。也摆脱了performSegueWIthIdentifier。谢谢! –