[英]tapping on table view cell
override func tableView(tableView: UITableView, cellForRowAtIndexPath
indexPath : NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier ("ChecklistItem") as UITableViewCell
let label = cell.viewWithTag(1000) as UILabel
if indexPath.row == 0 {
label.text = "jaswanth"
} else if indexPath.row == 1 {
label.text = "nikhil"
} else if indexPath.row == 2 {
label.text = "krishna"
}
return cell
}
我已经UITableViewController
,我已经在上面的代码中使用,以显示在表中的细胞和我有另外UIViewController
当用户点击在jaswanth文本(标签文本) UIViewController
已被改变,并且当NIKHIL被轻触的文本相同的方式(标签文本)在UIViewController
已更改
我只有一个UITableViewController
和一个UIViewController
我该怎么做?
您可能希望能够检测到何时按下了表格中的这些单元格。 可以使用Mike Welsh的建议通过实现该方法来完成:
func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)这使您能够知道从NSIndexPath中选择了哪个单元格。
从现在开始,在我看来,您希望能够更改由另一个UIViewController控制的文本(在按钮或字段上)。 可以做到的一种方法是对该UIViewController进行引用,并创建一种方法来更新此文本字段。 如果UITableViewController是子视图控制器,则可以像调用一样简单
override func prepareForSegue(_ segue: UIStoryboardSegue, sender sender: AnyObject?) { if segue.identifier == "SomeStringID" { self.tableViewController = segue.destinationViewController as? UITableViewController self.tableViewController.delegate = self } }
否则,如果控制器与Segue相关联,也可以通过重写原始ViewController的prepareForSegue来完成。 通过使用segue.identifier映射到您在StoryBoard中/以编程方式创建的segue,您可以将委托/指针设置为原始UIViewController。
覆盖func prepareForSegue(_ segue:UIStoryboardSegue,发件人发件人:AnyObject?){\n 如果segue.identifier ==“ SomeStringID” {\n self.tableViewController = segue.destinationViewController为? UITableViewController\n self.tableViewController.delegate =自我\n }\n }
通过引用其他ViewController,您应该能够定义自己的方法来轻松更改此文本字段
希望这对您有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.