从 UITableViewCell 到 UIViewController 的 segue 不工作(为未调用的 segue 做准备)

segue from UITableViewCell to UIViewController is not working (prepare for segue not called)

我有一个案例,我需要从不同的选项卡栏控制器、导航控制器显示一个特定的 UIViewController,并通过按下 table 视图单元格进行操作,并知道它从哪里显示,运行一些代码取决于此。所以,我决定使用 Storyboard Segue 是个好主意,但甚至不能调用 prepare for segue 函数。所有使用的 show segue 标识符都被命名,所以我不知道我在做什么。

但是如果有人想说任何其他实现某种方式的方法,我想知道。

https://i.imgur.com/ZSkta3p.jpg

我正在尝试通过 Storyboard References 来实现(只是因为它看起来更容易在 Storyboard 中导航),但是直接连接到 UIViewController 也不起作用。

我在 Xcode 10.1 和 Swift 4.2.1

 import UIKit

 class TestsController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        print("I'm working!'")
        if segue.identifier == "Test1" {
            print("test 1")
        } else if segue.identifier == "Test2" {
            print("test 2")
        }
    }

}

静态的table只能在UITableViewController里面,所以改成

class TestsController: UITableViewController {

然后在 IB 中分配此 class,并删除 UITableView | 的任何实现。 UITableViewDelegate | UITableViewDataSource

那么准备应该可以了,看看这个Demo