在iOS中获取UIViewController类名

Jau*_*ume 12 iphone cocoa-touch objective-c ios

我在navigationController堆栈上获取viewControllers,如下所示.现在我需要检查顶部的控制器是否是已知的vc之一.如何获取vc类名以便进行比较?谢谢.

NSArray *viewContrlls=[[self navController] viewControllers];
[viewContrlls lastObject]
Run Code Online (Sandbox Code Playgroud)

就像是,

if ([[viewContrlls lastObject] name] isEqualToString @"viewControllerName"){
Run Code Online (Sandbox Code Playgroud)

Mad*_*huP 32

使用它可能会帮助你

 NSString *CurrentSelectedCViewController = NSStringFromClass([[((UINavigationController *)viewController1) visibleViewController] class]);
Run Code Online (Sandbox Code Playgroud)


Mik*_*ler 14

最常见的技术是使用-isKindOfClass:

if ([[viewContrells lastObject] isKindOfClass:MyViewController.class]]) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

使用NSStringFromClass比较字符串是不是一个很好的解决方案,因为如果你重构视图控制器将其重命名你的代码将打破.