Ios 压倒一切;准备赛格“;以编程方式创建UIViewController时

Ios 压倒一切;准备赛格“;以编程方式创建UIViewController时,ios,swift,uiviewcontroller,swift4,uistoryboardsegue,Ios,Swift,Uiviewcontroller,Swift4,Uistoryboardsegue,我有一个UIView,在它里面我正在创建一个UIViewController: class TopBarView: UIView { var viewController: UIViewController?{ didSet{ print("a") } } 在我的代码后面,我将使用以下命令执行segue: if let vc = viewController { vc.performSegue(withIdentifier: "im

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

class TopBarView: UIView {
    var viewController: UIViewController?{
        didSet{
           print("a")
    }
}
在我的代码后面,我将使用以下命令执行
segue

if let vc = viewController {
    vc.performSegue(withIdentifier: "imagesSegue", sender: nil)
}
我希望将一些参数传递给我正在执行的
segue
to的
UIViewController

我试图在
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")
注意:如果vc是以编程方式创建的,则不能使用segue

这个

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

vc.performSegue(withIdentifier: "imagesSegue", sender:"someStr")
注意:如果vc是以编程方式创建的,则不能使用segue


类TopBarView:UIView
它来自UIView,而不是UIViewController,因为UIView没有声明它,所以您没有覆盖它。
类TopBarView:UIView
它来自UIView,而不是UIViewController,因为UIView没有声明它,所以您没有覆盖它。