如何检查UIViewController是否属于目标c中的特定子类?

Arc*_*ian 21 objective-c ipad ios4

我希望能够检查UIViewController的类型,看它是否是这样的某种类型

c代码

if (typeof(instance1) == customUIViewController) 
{
  customUIViewController test = (customViewController)instance1;

  // do more stuff
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*ton 39

isKindOfClass:方法指示对象是给定类的实例还是该类的子类的实例.

if ([instance1 isKindOfClass:[CustomUIViewController class]]) {
    // code
}
Run Code Online (Sandbox Code Playgroud)

如果要检查对象是否是给定类的实例(但不是该类的子类的实例),请isMemberOfClass:改用.


Har*_* Ng 15

var someVC: UIViewController

if someVC is MyCustomVC {
    //code
}
Run Code Online (Sandbox Code Playgroud)


Esq*_*uth 9

Swift版本:

var someVC: UIViewController

if someVC.isKindOfClass(MyCustomVC) {
    //code
}
Run Code Online (Sandbox Code Playgroud)


Kev*_*tre 5

尝试:

[vc isKindOfClass:[CustomViewController class]];
Run Code Online (Sandbox Code Playgroud)


Joh*_*rry 5

除了这个答案之外,我只想补充一点,如果您想在switch 语句 (在 Swift 中)中查看视图控制器是否属于某种类型,您可以这样做:

var someVC: UIViewController?

switch someVC {
    case is ViewController01: break
    case is ViewController02: break
    case is ViewController03: break
    default: break
}
Run Code Online (Sandbox Code Playgroud)