2016-05-17 62 views
0

这是我的代码:为什么UITableView commitEditing不起作用?

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if (editingStyle == UITableViewCellEditingStyle.Delete) { 
     print("1") 
     let deleteAction = UITableViewRowAction(style: .Normal, title: "Delete") { (rowAction: UITableViewRowAction, indexPath:NSIndexPath) -> Void in 
      print("clicking1") 
      if let selfiePublicID = self.selfiePublicID { 
       print("clicking2") 
       let URL = "\(self.properties.host)\(self.properties.addComment)\(selfiePublicID)/action/2" 
       print(URL) 

       self.userParameters.profileParameters["value"] = self.comments[indexPath.row].commentText 

       Alamofire.request(.DELETE, URL, parameters: self.userParameters.profileParameters, encoding: .JSON).validate().responseJSON { response in 
        do { 
         let json = JSON(data: response.data!) 
         print(json) 

         self.comments.removeAtIndex(indexPath.row) 
         self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) 
        } 
       } 
      } 
     } 

     deleteAction.backgroundColor = UIColor.redColor() 
    } 
} 

它的工作,但现在没有,我不知道为什么。在日志中我得到1,但后来我没有得到clicking1clicking2

那里有什么问题?

回答

0

当用户滑动时需要自定义操作时,将使用UITableViewRowAction。

目前,您拥有了动作处理程序中的所有删除代码,该动作处理程序从未执行过,因为该动作没有显示出来。 对于这种特殊情况,您不需要采取措施,只需将其更新至

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if (editingStyle == UITableViewCellEditingStyle.Delete) { 
     print("1") 
     print("clicking1") 
     if let selfiePublicID = self.selfiePublicID { 
      print("clicking2") 
      let URL = "\(self.properties.host)\(self.properties.addComment)\(selfiePublicID)/action/2" 
      print(URL) 

      self.userParameters.profileParameters["value"] = self.comments[indexPath.row].commentText 

      Alamofire.request(.DELETE, URL, parameters: self.userParameters.profileParameters, encoding: .JSON).validate().responseJSON { response in 
       do { 
        let json = JSON(data: response.data!) 
        print(json) 

        self.comments.removeAtIndex(indexPath.row) 
        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) 
       } 
      } 
     } 
    } 
} 
0

更改您的代码如下图所示,

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
if (editingStyle == UITableViewCellEditingStyle.Delete) { 
    print("clicking1") 
     if let selfiePublicID = self.selfiePublicID { 
      print("clicking2") 
      let URL = "\(self.properties.host)\(self.properties.addComment)\(selfiePublicID)/action/2" 
      print(URL) 

      self.userParameters.profileParameters["value"] = self.comments[indexPath.row].commentText 

      Alamofire.request(.DELETE, URL, parameters: self.userParameters.profileParameters, encoding: .JSON).validate().responseJSON { response in 
       do { 
        let json = JSON(data: response.data!) 
        print(json) 

        self.comments.removeAtIndex(indexPath.row) 
        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) 
       } 
      } 
     } 
    } 
} 

希望这将运行。