Obtenga el nombre de la class UIViewController en iOS

Obtengo viewControllers en stack navigationController de la siguiente manera. Ahora necesito verificar si el controller en la parte superior es uno de vc conocido. ¿Cómo get el nombre de class vc para poder compararlo? Gracias.

NSArray *viewContrlls=[[self navController] viewControllers]; [viewContrlls lastObject] 

algo como,

 if ([[viewContrlls lastObject] name] isEqualToString @"viewControllerName"){ 

Use esto Puede que le ayude

  NSString *CurrentSelectedCViewController = NSStringFromClass([[((UINavigationController *)viewController1) visibleViewController] class]); 

La técnica más común es usar -isKindOfClass :

 if ([[viewContrells lastObject] isKindOfClass:MyViewController.class]]) { // ... } 

Usar NSStringFromClass para comparar cadenas no es una solución muy buena porque su código se romperá si refactoriza el controller de vista para cambiar su nombre.

 if ([NSStringFromClass([[viewContrlls lastObject] class]) isEqualToString: @"Whatever"]){ } 

También puede usar -isKindOfClass si prefiere comparar directamente una instancia con una class específica.

Versión Swift:

 static func getClassNameAsString(className: AnyObject) -> String { return _stdlib_getDemangledTypeName(className).componentsSeparatedByString(".").last! }