Segues 的 Upcast ViewControllers

Upcast ViewControllers for Segues

我有两个视图,A 和 B,都继承自 C。

在情节提要中,我将 UIViewController 定义为类型 C。

另一个视图,比方说 D,有到 C 的两个 segues。

我希望能够根据相关的segue转换目的地:

if segue.identifier = "ToA"
{
   // Load view A
}
if segue.identifier = "ToB"
{
   // Load view B
}

我试过了,投射失败。可能吗?

我在 SO 上发现另一个线程说它不是,但那里有一个回复说它是可能的。我怎样才能使这个铸造工作?

还是我应该将 A 和 B 融合在一起?我真的不想那样做。

这是不可能的,因为继承不是这样工作的。 A 和 B 也是 C。但是 C 既不是 A 也不是 B。C 是初始化的,pushed/presented/embedded 当你执行你的 segues 时。

您需要在故事板中创建两个不同的 ViewControllers A 和 B。他们可以与您的 C.swift 文件建立一些 IBOutlet/IBAction 联系。