是否有可能以这样的方式编写以下 switch 语句,即“let dentViewController”部分发生在“switch segue.destination”或“case is DamageTypeDentViewController:”行上?
(我觉得我正在对“case is”和“let dentViewController = segue.destination as”做双重工作)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch segue.destination {
case is DamageTypeDentViewController:
let dentViewController = segue.destination as? DamageTypeDentViewController
dentViewController.doSomething()
default:
return
}
}
最佳答案
是的
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()
}
}
关于ios - 在 switch case 语句中获取 segue.destination 作为 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57460965/