以编程方式创建UIViewController时,将覆盖“为segue做准备”

问题描述 投票:0回答:1

我有一个UIView,在其中创建了一个UIViewController

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

在我的代码后,我正在使用segue

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

我希望将一些参数传递给我正在执行UIViewControllersegue

我尝试在viewcontroller的定义内添加“准备进行搜索”定义,因此看起来像这样:

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

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

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

ios swift uiviewcontroller swift4 uistoryboardsegue
1个回答
0
投票

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

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

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

注意:如果以编程方式创建vc,则不能使用segue

© www.soinside.com 2019 - 2024. All rights reserved.