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
我该怎么做?
答案 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,您应该能够定义自己的方法来轻松更改此文本字段
希望这能帮到你!