使用 editActions 和 performSegue 编辑 UITableView 行?

Posted

技术标签:

【中文标题】使用 editActions 和 performSegue 编辑 UITableView 行?【英文标题】:Editing UITableView row with editActions and performSegue? 【发布时间】:2016-11-21 11:33:17 【问题描述】:

我尝试在我的 TableView 中添加滑动编辑选项。如果用户按编辑,则应打开一个新视图。

但我总是在“if segue.identifier ==”ItemDetailsVS “””行的函数“editActionsForRowAt”中遇到错误:致命错误:在展开可选值时意外发现 nil

segue 在情节提要中具有正确的名称。有什么想法吗?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if segue.identifier == "ItemDetailsVC" 
        if let destination = segue.destination as? ItemDetailsViewController 
            if let item = sender as? Item2 
                destination.itemToEdit = item
            
        
    


func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? 
    let edit = UITableViewRowAction(style: .normal, title: "Edit") (action, indexPath) in

        var segue: UIStoryboardSegue!

        if segue.identifier == "ItemDetailsVC" 
            if let objects = self.controller.fetchedObjects , objects.count > 0 
                let item = objects[indexPath.row]
                self.performSegue(withIdentifier: "ItemDetailsVC", sender: item)
                
            
        
    return [edit]


【问题讨论】:

你在创建一个空变量并使用它,它当然会为你报错,你可以参考this学习如何使用segue 【参考方案1】:

这是因为您使用的是未初始化的 Segue 对象,因此使用“?”而不是“!”。还要检查标识符。

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html

【讨论】:

以上是关于使用 editActions 和 performSegue 编辑 UITableView 行?的主要内容,如果未能解决你的问题,请参考以下文章

浏览器性能监控performance使用

使用 RegQueryValueEx 和 HKEY_PERFORMANCE_COUNTER 获取“Disk Bytes/sec%

performance.memory打印值不变

使用performance工具分析运行时性能

LightHouse 和 Performance 之间的 LCP 时间 - Google Chrome

使用performance进行网页性能监控