繁体   English   中英

点击表格视图单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM