swift访问tableview indexPath ouside

时间:2018-04-17 03:40:42

标签: ios swift indexing tableview

我想知道如何访问外部表视图的索引路径行。我想在外面按下某个按钮时访问。我提供了我到目前为止的代码,不要担心表工作正常只是想知道如何访问它外面。当checkbuttonressed时,它会继续返回索引或单元格#0。

想在这里访问它到目前为止

 func checkBoxButtonIsPressed(cell: ToDoListTableViewCell) {
        performSegue(withIdentifier: "updateChores", sender: nil)

        let indexPath = IndexPath(row: 0 , section: 0)
        let cell = tableView.cellForRow(at: indexPath)
        print("you selected cell #\(indexPath.item)!")
        //wanted to print selected row.


    }

我想要访问的内容

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
          print("You selected cell #\(indexPath.item)!")


        if indexPath.row == (-1) {
//            var a = loggedInUsername
//            if ((a?.range(of: "mother")) != nil) {
////                performSegue(withIdentifier: "goToSegue", sender: nil)
//                print("yolo")
//            }else {
//                print("do nothing")
//                var alert = UIAlertController(title: "No Access", message: "You Can't Add A Chore", preferredStyle: UIAlertControllerStyle.alert)
//                alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
//                self.present(alert, animated: true, completion: nil)
//            }

        } else {


            print("You selected cell #\(indexPath.item)!")

            if let getTempDetails: [String : Any] = getAllDetail[indexPath.row],
                let name = getTempDetails["name"] as? String,
                let id = getTempDetails["id"] as? Int,
                let description = getTempDetails["desc"] as? String,
                let chorereward = getTempDetails["reward"] as? String,
                let choreschedule = getTempDetails["sched"] as? String
                ...

1 个答案:

答案 0 :(得分:1)

因此,如果我理解的话,您想要访问ToDoListTableViewCell的索引路径。

你可以这样做:

func checkBoxButtonIsPressed(cell: ToDoListTableViewCell) {
        performSegue(withIdentifier: "updateChores", sender: nil)

        let indexPath = tableView.indexPath(for: cell)
}

顺便说一下,你的代码在这里:

if indexPath.row == (-1)

永远不会有效,因为它不可能有一个-1索引的行