Ios 在switch case语句中获取segue.destination作为视图控制器

Ios 在switch case语句中获取segue.destination作为视图控制器,ios,swift,Ios,Swift,是否可以编写以下switch语句,使“let dentViewController”部分出现在“switch segue.destination”或“case Is damage typedentViewController:”行上 (我觉得我对“case is”和“let dentViewController=segue.destination as”做了双重工作) 是的 override func prepare(for segue: UIStoryboardSegue, sender: A

是否可以编写以下switch语句,使“let dentViewController”部分出现在“switch segue.destination”或“case Is damage typedentViewController:”行上

(我觉得我对“case is”和“let dentViewController=segue.destination as”做了双重工作)

是的

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    switch segue.destination {
    case let dentViewController as DamageTypeDentViewController:
        dentViewController.doSomething()

    default:
        return
    }
}

如果只有一个病例需要检查,你可以写

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

    if case let dentViewController as DamageTypeDentViewController = segue.destination {
        dentViewController.doSomething()
    }
}
甚至更简单

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

    if let dentViewController = segue.destination as? DamageTypeDentViewController {
        dentViewController.doSomething()
    }
}
您可以将
(segue.destination作为?损坏类型dentViewController)?.doSomething()写入

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

    if let dentViewController = segue.destination as? DamageTypeDentViewController {
        dentViewController.doSomething()
    }
}