以编程方式创建 UIViewController 时覆盖 "prepare for segue"

overriding "prepare for segue" when programmatically creating a UIViewController

我有一个 UIView,在里面我正在创建一个 UIViewController:

class TopBarView: UIView {
    var viewController: UIViewController?{
        didSet{
           print("a")
    }
}

稍后在我的代码中,我正在执行 segue 使用:

if let vc = viewController {
    vc.performSegue(withIdentifier: "imagesSegue", sender: nil)
}

我想传递一些参数给 UIViewController 我正在执行 segue 给。

我试图在 viewcontroller 的定义中添加一个 "prepare for segue" 定义,所以它看起来像这样:

class TopBarView: UIView {
    var viewController: UIViewController?{
        didSet{
           print("a")
    }
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    }
}

但是,我收到一个错误 - 这样的事情可能无法完成。

如何将所需的参数传递到新的 UIViewController

这个

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   /////
}

应该在您分配给 var viewController: UIViewController? 的 vc 内,并使用 sender 参数发送任何数据

vc.performSegue(withIdentifier: "imagesSegue", sender:"someStr")

Note: You can't use a segue if the vc is created programmatically