我已经阅读了很多关于这个问题的SO帖子,但遗憾的是没有一个答案解决了我的问题。我有一个UIViewController
,里面有TableView
(我按照这种方式设置了我想要的特定UI格式),截至目前,如果用户向左滑动,{{1 }}和delete
按钮显示。我的edit
操作正常,但到目前为止我尝试delete
的每次迭代都给了我一个edit
错误。
我的SIGABRT / terminating with uncaught exception of type NSException
课程已添加ViewController
,UIViewController
和UITableViewDataSource
个协议。我的tableView(editActionsForRowAt :)函数的代码如下:
UITableViewDelegate
我在SO上找到的所有答案都涉及从我的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]
}
到目标屏幕在IB中创建segue的变体,设置segue的标识符,然后使用ViewController
调用该segue。 / p>
到目前为止,我已经尝试过:
1
performSegue(withIdentifier:sender:)
2
if let topController = UIApplication.topViewController() {
topController.performSegue(withIdentifier: "segueToEditListItem", sender: topController)
}
3
self.performSegue(withIdentifier: "segueToEditListItem", sender: self)
tableView.performSegue(withIdentifier: "segueToEditListItem", sender: tableView)
而不是TableView
可能还有上面几个变种我删除而不是评论出来。每次点击ViewController
时出现SIGABRT
错误,我始终将其与错误连接的edit
相关联。我检查确保segue连接正确,当我删除任何提及segue我的应用程序工作正常(@IBOutlets
按钮打印"编辑轻拍。"),这样让我认为我的edit
无法识别我的.swift文件中的segue存在问题。
我花了几个小时试图解决这个问题并且失败了很多,所以任何帮助/建议都会非常感激。
答案 0 :(得分:1)
self.performSegue(withIdentifier: "Identifier", sender: self)
应该有效。
如果您的问题是@IBOutlets
,您应该再次检查您的奥特莱斯
如果您可以在控制台日志中写下崩溃的描述。