Ios Swift:在两个控制器之间创建segue不接受我的第二个视图控制器
我试图在两个Ios Swift:在两个控制器之间创建segue不接受我的第二个视图控制器,ios,segue,Ios,Segue,我试图在两个uiviewcontrollers之间切换,但Swift不会编译我的代码。这是我的密码: prepareForSegue(segue: UIStoryboardSegue(identifier: "containerSegue", source: self, destination: EventColumnViewController.self), sender: nil) 其中EventColumnViewController是我的自定义ViewController类,下面是我得
uiviewcontrollers
之间切换,但Swift不会编译我的代码。这是我的密码:
prepareForSegue(segue: UIStoryboardSegue(identifier: "containerSegue", source: self, destination: EventColumnViewController.self), sender: nil)
其中EventColumnViewController是我的自定义ViewController类,下面是我得到的错误:
Cannot find an initializer for type 'UIStoryboardSegue' that accepts an argument list of type '(identifier: String, source: ViewController, destination: EventColumnViewController.Type)'
为什么会这样?我怎样才能解决这个问题
这是我的类声明:
class EventColumnViewController:UIViewController,UIViewControllerTransitioningDelegate
您不想在函数签名中为PrepareForsgue指定特定的segue。相反,该函数接收触发的任何一个segue,您可以使用if块为某个segue执行特定代码
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "containerSegue") {
// perform specific code here.
}
}
如果您确实希望以编程方式执行名为“containerSegue”的特定segue,则需要使用不同的函数:
performSegueWithIdentifier("containerSegue", sender: self)
请注意区别:
- prepareForSegue用于在触发segue后进行设置(例如将数据传递给下一个控制器)
- performsguewithidentifier实际上触发segue