fse*_*lva 3 row uitableview didselectrowatindexpath segue swift
我有一个由 cellForRowAtIndexPath 填充的 UITableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("customTableViewCell") as! UITableViewCell
let task = frc.objectAtIndexPath(indexPath) as! Task
cell.textLabel?.text = task.summary
var detail = task.detail
var context = task.context
var due = task.date
var status = task.status
var responsible = task.responsable
var folder = task.folder
cell.detailTextLabel?.text = "Contexte: \(context), Detail: \(detail), Status: \(status), Ending date: \(due)"
return cell
}
Run Code Online (Sandbox Code Playgroud)
在情节提要上,当单击 tableView 的一个单元格以打开 detailViewController 时,我做了一个 segue
这是我的 didSelectRowAtIndexPath:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath)
self.name = cell!.textLabel!.text!
println(self.name)
self.performSegueWithIdentifier("Show Detail", sender: indexPath);
}
Run Code Online (Sandbox Code Playgroud)
和 prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if let identifier = segue.identifier{
switch identifier {
case "Show Detail":
let indexPath = self.tableView.indexPathForSelectedRow()
let editTaskVC = segue.destinationViewController as! EditTaskViewController
editTaskVC.Name = "cell.textLabel?.text is what I would like to.."
default: break
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,editTaskVC.Name = indexPath?.description我可以看到单击的单元格的描述,<NSIndexPath: 0x78f96ab0>...例如。
是否有可能,而不是打印 indexPath 的描述,而是打印单击行的 cell.textLabel?.text?
我在论坛上看过很多很多教程或帖子,但我还没有成功解决我的问题......
感谢您的帮助。
问候。
您的意图是将 传递cell.textLabel?.text给目标视图控制器,对吗?
你在走不必要的弯路。该sender参数performSegueWithIdentifier:可以在一个AnyObject,所以你可以去正前方,并传递给它name。
self.performSegueWithIdentifier("Show Detail", sender: name)
这样,prepareForSegue您需要将项目传递给下一个视图控制器。只需分配editTaskVC = sender as! String即可。
您缺少的知识是,sender参数 inperformSegueWithIdentifier: sender会自动将发件人的内容传递到prepareForSegue, 作为发件人参数。
| 归档时间: |
|
| 查看次数: |
5949 次 |
| 最近记录: |