【问题标题】:How can I access IndexPath in this case? [closed]在这种情况下如何访问 IndexPath? [关闭]
【发布时间】:2019-01-15 15:41:31
【问题描述】:

在这种情况下如何访问 IndexPath?我想在按钮点击功能中使用它。我已经在我需要的地方指出了它。

编辑: 我在 tableView 下方有一个评论按钮和一个文本字段,如果我单击按钮,我希望它附加到数组中

class Comments: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var comments = [MyPost]()

    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var textield: UITextField!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return comments.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "commentCell", for: indexPath)

        cell.textLabel?.text = comments[indexPath.row].comments
        return cell
    }

    @IBAction func postCommentButton(_ sender: UIButton) {


        comments[**here I need IndexPath**].comments = textield.text

        tableView.reloadData()
    }

}

MyPost 类:

class MyPost {

var likes: Int16
var image: String?
var comments: String?
var hasLiked: Bool?

init(likes: Int16, image: String, comments: String, hasLiked: Bool) {
    self.likes = likes
    self.image = image
    self.comments = comments
    self.hasLiked = hasLiked
}

}

【问题讨论】:

  • 按钮在单元格中吗?如果没有,你想要哪个索引路径?
  • 欢迎您。我猜你正在使用自定义单元格?此按钮是否放置在此单元格上?我的假设正确吗?
  • 不,不在单元格中。它是普通 viewController 中的一个动作,其中 tableview 与数据源和委托集成在一起。我需要 indexPath.row
  • 您想要哪个indexPathcmets 数组的哪个索引?
  • 您只想在数组末尾添加新注释吗?否则,您想要哪一行的索引路径?

标签: ios swift uitableview


【解决方案1】:

查看您的解释,我了解到,postCommentButton 正在为您的帖子添加一条评论。

您应该只将 MyPost 类型的元素附加到元素数组并重新加载表格

@IBAction func postCommentButton(_ sender: UIButton) {
    // You can pass more param based on your actual image name, while initialize MyPost.
    let newComment = MyPost(likes: 0, image: "default", comments: textield.text, hasLiked: false)
    comments.append(newComment)
    //comments[**here I need IndexPath**].comments = textield.text

    tableView.reloadData()
}

希望对你有帮助。

【讨论】:

  • 无法使用类型为“(cmets: String?)”的参数列表调用“MyPost”
  • 请向我展示您的 MyPost 结构以向您展示确切的方式。
  • 我没有结构。我创建了一个类
  • 看问题
  • 检查我的编辑,并接受它,如果它解决了您的问题。
猜你喜欢
  • 1970-01-01
  • 2020-12-27
  • 2021-11-22
  • 1970-01-01
  • 2018-11-22
  • 2013-11-18
  • 1970-01-01
  • 2021-02-13
  • 2022-07-21
相关资源
最近更新 更多