点击表格视图单元格

时间:2015-05-21 19:08:57

标签: ios iphone uitableview swift

someString

我有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 } ,我使用上面的代码显示表格中的单元格,当用户点击jaswanth UITableViewController中的文字(标签文字)时,我有另一个UIViewController点击nikhil后,UIViewController中的文字(标签文字)发生了变化,同样地改变了

我只有一个UIViewController和一个UITableViewController我该怎么做?

1 个答案:

答案 0 :(得分:0)

您希望能够检测表中的这些单元格何时被按下。这可以通过Mike Welsh通过实施该方法的建议来完成:

func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
这使您能够分辨出从NSIndexPath中选择的单元格。

从此开始,在我看来,您希望能够更改由另一个UIViewController控制的文本(在按钮或字段上)。可以做的一种方法是引用此UIViewController并创建更新此文本字段的方法。 如果UITableViewController是子视图控制器,它可以像调用

一样简单
 let parent = parentViewController!

否则如果控制器与Segue相关,也可以通过覆盖原始ViewController的prepareForSegue来完成。 通过使用segue.identifier映射到您在StoryBoard /编程方式中创建的segue,您可以设置指向原始UIViewController的委托/指针。

override func prepareForSegue(_ segue: UIStoryboardSegue, sender sender: AnyObject?) {
    if segue.identifier == "SomeStringID" {
        self.tableViewController = segue.destinationViewController as? UITableViewController
        self.tableViewController.delegate = self
    }
}

通过引用其他ViewController,您应该能够定义自己的方法来轻松更改此文本字段

希望这能帮到你!

相关问题