Swift 3-从uiviewcontroller到不相关类型的分段/转换总是失败

Swift 3-从uiviewcontroller到不相关类型的分段/转换总是失败,swift,uiviewcontroller,segue,Swift,Uiviewcontroller,Segue,我正在尝试使用segue将一个布尔语句从我的viewcontroller管理viewcontroller传递到另一个语句,我正在将uiviewcontroller转换为不相关的类型始终失败错误 缅因州 二次VC 然而,符合 if let sessionTrackerBoolClone = segue.destination as? Bool{ 我得到了错误 您需要键入cast sender来获取布尔值,而不是segue.destination,因为destination是UIViewContr

我正在尝试使用segue将一个布尔语句从我的viewcontroller管理viewcontroller传递到另一个语句,我正在将uiviewcontroller转换为不相关的类型始终失败错误

缅因州

二次VC

然而,符合

if let sessionTrackerBoolClone = segue.destination as? Bool{
我得到了错误

您需要键入cast sender来获取布尔值,而不是segue.destination,因为destination是UIViewController的类型

如果要将此布尔值传递给下一个控制器,请键入将目标强制转换为ViewController并设置其属性

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let vc = segue.destination as! ViewController //Your ViewController class
    if let sessionTrackerBoolClone = sender as? Bool{
        vc.sesssionTrackerActive = sessionTrackerBoolClone
    }
}
在代码中,segue.destination将是一个UIViewController。那你为什么要把它投给布尔?正是这个演员给了你一个错误。您可能看到了错误的值。解决了这个问题,你就会没事了:

if let sessionTrackerBoolClone = segue.destination as? Bool{
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let sessionTrackerBoolClone = sender as? Bool{
        sesssionTrackerActive = sessionTrackerBoolClone
    }
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let vc = segue.destination as! ViewController //Your ViewController class
    if let sessionTrackerBoolClone = sender as? Bool{
        vc.sesssionTrackerActive = sessionTrackerBoolClone
    }
}