ios - didSelectRowAtIndexPath 在 canEditRowAtIndexPath 之前执行

标签 ios swift uitableview

我有一个UITableview。除了向左滑动以显示“删除”按钮之外,一切正常。看起来didSelectRowAtIndexPath是在canEditRowAtIndexPath之前执行的。如何更改以使其保留并显示删除按钮而不是显示新的 UIView?

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    println("Edit")
    return true
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    println("Select")
    println(indexPath.row)


    let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("CklDtljChnge") as! UIViewController

    self.presentViewController(viewController, animated: false, completion: nil)

}

最佳答案

您需要添加这些委托(delegate)方法才能执行此操作。

func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {


        return UITableViewCellEditingStyle.Delete

    }
    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if (editingStyle == UITableViewCellEditingStyle.Delete) {

          // do  your stuff.

        }
    }

关于ios - didSelectRowAtIndexPath 在 canEditRowAtIndexPath 之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376985/

相关文章:

ios - 文本字段未在IOS Carplay中接受任何输入

ios - 从普通 View Controller 打开 ECSlidingViewController

swift - Sprite 位置没有更新到它被移动到的位置

ios - 如何使所有单元格在所有设备上看起来都一样

ios - 如何将所选行的值显示到下一个 View Controller ?

ios - 向具有清晰背景的 SCNPlane 添加阴影的问题

ios - 在 SLComposeViewController 顶部显示附加图像

swift - 尝试在闭包中使用泛型类型时出现意外的编译器错误

ios - 如何使用自动布局垂直堆叠 TableView ?

ios - TableView 嵌套在 CollectionViewCell 中