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

我希望能够检查UIViewController的类型,看它是否是这样的某种类型 c代码
if (typeof(instance1) == customUIViewController) 
{
  customUIViewController test = (customViewController)instance1;

  // do more stuff
}
    
已邀请:
isKindOfClass:
方法指示对象是给定类的实例还是该类的子类的实例。
if ([instance1 isKindOfClass:[CustomUIViewController class]]) {
    // code
}
如果要检查对象是否是给定类的实例(但不是该类的子类的实例),请改用
isMemberOfClass:
。     
var someVC: UIViewController

if someVC is MyCustomVC {
    //code
}
    
Swift版本:
var someVC: UIViewController

if someVC.isKindOfClass(MyCustomVC) {
    //code
}
    
尝试:
[vc isKindOfClass:[CustomViewController class]];
    
我只想添加这个答案,如果你想看一个视图控制器是否在switch语句中是某种类型(在Swift中),你可以这样做:
var someVC: UIViewController?

switch someVC {
    case is ViewController01: break
    case is ViewController02: break
    case is ViewController03: break
    default: break
}
    
Swift 3.0 最近,我们必须添加一个self和类名 或者它会抛出错误“类型名称后的预期成员名称或构造函数调用”   以下代码可以用于Swift 3及以上版本
  for viewController in viewControllers {
                            if viewController.isKind(of: OurViewController.self){
                                print("yes it is OurViewController")
                                self.navigationController?.popToViewController(viewController, animated: true)
                            }
                        }
    

要回复问题请先登录注册