Iphone 获取iOS中的UIViewController类名
我在navigationController堆栈上获得ViewController,如下所示。现在我需要检查顶部的控制器是否是已知的vc之一。如何获得vc类名以便比较呢?多谢各位Iphone 获取iOS中的UIViewController类名,iphone,objective-c,ios,cocoa-touch,Iphone,Objective C,Ios,Cocoa Touch,我在navigationController堆栈上获得ViewController,如下所示。现在我需要检查顶部的控制器是否是已知的vc之一。如何获得vc类名以便比较呢?多谢各位 NSArray *viewContrlls=[[self navController] viewControllers]; [viewContrlls lastObject] 大概 if ([[viewContrlls lastObject] name] isEqualToString @"viewControlle
NSArray *viewContrlls=[[self navController] viewControllers];
[viewContrlls lastObject]
大概
if ([[viewContrlls lastObject] name] isEqualToString @"viewControllerName"){
用这个也许对你有帮助
NSString *CurrentSelectedCViewController = NSStringFromClass([[((UINavigationController *)viewController1) visibleViewController] class]);
如果希望直接将实例与特定类进行比较,也可以使用
-isKindOfClass
。最常用的技术是使用-isKindOfClass
:
if ([[viewContrells lastObject] isKindOfClass:MyViewController.class]]) {
// ...
}
使用NSStringFromClass
比较字符串不是一个很好的解决方案,因为如果重构视图控制器以重命名它,代码将中断。Swift版本:
static func getClassNameAsString(className: AnyObject) -> String {
return _stdlib_getDemangledTypeName(className).componentsSeparatedByString(".").last!
}
未解析标识符\u stdlib\u getDemangledTypeName。我想你还得告诉我们要导入哪个库。
static func getClassNameAsString(className: AnyObject) -> String {
return _stdlib_getDemangledTypeName(className).componentsSeparatedByString(".").last!
}