在这种情况下如何访问IndexPath?

时间:2018-08-08 11:28:44

标签: ios swift uitableview

在这种情况下如何访问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
}

}

1 个答案:

答案 0 :(得分:1)

根据您的解释,我了解到,postCommentButton向您的帖子添加了另外一条评论。

您应仅将MyPost类型的元素附加到elements数组并重新加载表

@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()
}

希望有帮助。