首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UITableViewRowAction触发

从UITableViewRowAction触发
EN

Stack Overflow用户
提问于 2018-04-11 18:17:37
回答 1查看 195关注 0票数 1

我读过很多关于这个问题的帖子,但不幸的是,没有一个答案解决了我的问题。我有一个UIViewController,里面有一个TableView (我按照我想要的特定UI格式设置它),从现在起,如果用户向左滑动,就会出现一个deleteedit按钮。我的delete操作运行良好,但到目前为止,我对edit的每次迭代都给了我一个SIGABRT / terminating with uncaught exception of type NSException错误。

我的ViewController类添加了UIViewControllerUITableViewDataSourceUITableViewDelegate协议。我的tableView(editActionsForRowAt:)函数的代码如下所示:

代码语言:javascript
复制
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {

    // Delete action
    let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "Delete", handler: { (action, indexPath) -> Void in

        // Delete action code works fine

    })

    deleteAction.backgroundColor = GlobalPropertyKeys.LovalyticsRed

    let editAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "Edit") {(action, indexPath) -> Void in

        // Will explain what I've tried so far below this

        print("Edit tapped.")
    }

    editAction.backgroundColor = GlobalPropertyKeys.LovalyticsBlue

    return [deleteAction, editAction]

}

我在上面找到的所有答案都涉及从我的ViewController到目标屏幕创建IB中的segue,为segue设置一个标识符,然后使用performSegue(withIdentifier:sender:)调用该segue。

到目前为止,我已经尝试过:

1.

代码语言:javascript
复制
    if let topController = UIApplication.topViewController() {
        topController.performSegue(withIdentifier: "segueToEditListItem", sender: topController)
    }

2.

代码语言:javascript
复制
    self.performSegue(withIdentifier: "segueToEditListItem", sender: self)

3.

代码语言:javascript
复制
    tableView.performSegue(withIdentifier: "segueToEditListItem", sender: tableView)
  1. 尝试从TableView而不是从ViewController连接segue

可能还有一些我删除的更多的变体,而不是注释掉。每次单击SIGABRT时,我都会得到一个edit错误,我总是将它与错误连接的@IBOutlets联系在一起。我检查了一下,以确保segue是正确连接的,当我删除任何关于segue的内容时,我的应用程序都能正常工作( edit按钮打印"Edit .“),这让我觉得我的ViewController在.swift文件中不识别这个segue存在问题。

我花了好几个小时想办法解决这个问题,但失败得很惨,所以任何帮助/建议都会受到极大的感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-11 19:19:55

self.performSegue(withIdentifier: "Identifier", sender: self)应该能工作。

如果你的问题是关于@IBOutlets,你应该再次检查你的店铺。

如果您可以在有崩溃描述的地方编写控制台日志。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49781953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档