手动(自动)Segue无法正常工作-表格视图单元格

时间:2020-07-30 13:18:18

标签: ios swift xcode segue

我是Xcode的新手,我正在关注here教程,该教程介绍了如何添加手动设置。

https://github.com/AdditionAddict/learnXcode

问题:在模拟器中单击表格单元格时,不会触发手动选择。

我尝试过的操作:我添加了一个手动(自动)segue,一个标识符,而本教程在这一点上说到了这一点,选择了一个单元格,结果从表中移出查看单元格中的餐点细节场景,我继续执行代码部分,并且prepare中的断点仍然没有触发。

    // MARK: - Navigation

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        super.prepare(for: segue, sender: sender)
        
        switch(segue.identifier ?? "") {
            
        case "AddItem":
            os_log("Adding a new meal", log: OSLog.default, type: .debug)
            
        case "ShowDetail":
            // set the meal for the `MealViewController` as the meal selected in the `MealTableViewController`
            os_log("Show detail of a meal", log: OSLog.default, type: .debug)
            
            guard let mealDetailViewController = segue.destination as? MealViewController else {
                fatalError("Unexpected destination, \(segue.destination)")
            }
            guard let selectedMealCell = sender as? MealTableViewCell else {
                fatalError("Unexpected sender, \(String(describing: sender))")
            }
            guard let indexPath = tableView.indexPath(for: selectedMealCell) else {
                fatalError("The selected cell is not being displayed by the table")
            }
            
            let selectedMeal = meals[indexPath.row]
            mealDetailViewController.meal = selectedMeal
            
        default:
            fatalError("Unexpected Segue Identifier")
        }
    }

已检查
如果仅出于调试目的,将以下内容放在断点处的MealTableViewController.swift中,则在单击表格单元格时没有任何反应:

    override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
        return true
    }

这使我认为表格单元格未注册“选择”。

“表视图选择”属性是“单选”。

自定义MealTableViewCell已选中User Interaction Enabled

在大纲窗格中单击MealTableViewCell,然后在实用程序窗格中选择“连接”检查器,也会显示以下内容:

Connections Inspector showing segue

最终位:是否仍然可以添加手动(自动)序列?
教程已保存在存档中,我已经设法对其进行了一些小的改动。
使用Xcode 11.6

main.storyboard and Identity Inspector

编辑/评论问题的答案

  1. 已添加(自动)为手动。我的意思是本教程使用的方法是从表格单元格到用餐细节。
  2. 桌子前(我知道)没有任何东西,例如轻击手势识别器
  3. 与点击表格单元格不同,Plus序列有效并触发prepare

1 个答案:

答案 0 :(得分:1)

问题是您意外地禁用了表视图的用户交互。 (我知道这是我运行该项目并发现无法滚动表格视图或单击任何星号以更改等级时的问题。)

查看此屏幕截图的底部。您需要确保如屏幕截图中所示,选中了“启用用户交互” 。在您的项目中,事实并非如此。因此,整个表是“不可触摸的”。

enter image description here

相关问题