Obtenir le nom de la class UIViewController dans iOS

J'obtiens viewControllers sur la stack de navigationController comme suit. Maintenant, j'ai besoin de vérifier si le controller sur le dessus est l'un des vc connus. Comment get le nom de la class vc afin de le comparer? Je vous remercie.

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

quelque chose comme,

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

Utilisez ceci Il vous sera peut-être utile

  NSSsortingng *CurrentSelectedCViewController = NSSsortingngFromClass([[((UINavigationController *)viewController1) visibleViewController] class]); 

La technique la plus courante consiste à utiliser -isKindOfClass :

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

Utiliser NSSsortingngFromClass pour comparer des strings n'est pas une très bonne solution car votre code va se casser si vous refactorisez le controller de vue pour le renommer.

 if ([NSSsortingngFromClass([[viewContrlls lastObject] class]) isEqualToSsortingng: @"Whatever"]){ } 

Vous pouvez également utiliser -isKindOfClass si vous préférez comparer directement une instance à une class spécifique.

Version rapide:

 static func getClassNameAsSsortingng(className: AnyObject) -> Ssortingng { return _stdlib_getDemangledTypeName(className).componentsSeparatedBySsortingng(".").last! }