如何在Swift中检查实例的类型?

时间:2017-05-26 12:37:03

标签: ios swift unwind-segue

我想使用展开segue从当前UIViewController导航到第二个呈现UIViewController

let unwindDestinationViewController = self.presentingViewController!.presentingViewController!
                    switch unwindDestinationViewController{
                    case is UIViewControllerSubclass:
                        self.performSegue(withIdentifier: "unwindToUIViewControllerSubclass", sender: self)
                        break
                    default:
                        break
                    }

然而,这不起作用。我还尝试将case语句更改为UIViewControllerSubclass.Type,但它给了我一个错误:cast from UIViewController to unrelated type UIViewControllerSubclass always fails.

如果有人能告诉我自己做错了什么,我真的很感激。

1 个答案:

答案 0 :(得分:0)

您的代码适用于检查类型:

case is UIViewControllerSubclass:

另一种测试课程的方法:

case let vc as UIViewControllerSubclass:

如果您需要访问特定于该类的方法或属性,这将非常有用。

如果您不需要使用vc,请执行以下操作:

case _ as UIViewControllerSubclass:

您可以在此处使用if语句:

if unwindDestinationViewController is UIViewControllerSubclass {
    self.performSegue(withIdentifier: "unwindToUIViewControllerSubclass", sender: self)
}