0

我如何检查对象类型 id 是否有 viewcontrollers 数组。我需要检查我是否可以调用 viewControllers。调用 respondsToSelector 是否正确?

while (![obj isKindOfClass:[UIViewController class]])
{
obj = [obj viewControllers].lastObject;
}
4

2 回答 2

1
if (class_getProperty([obj class], "viewControllers") != NULL)

你需要导入#import <objc/runtime.h>

于 2012-10-10T09:59:18.083 回答
0

只有 UINavigationController、UISplitViewController、UITabBarController 有 viewControllers 属性。

 if([obj isKindOfClass:[UINavigationController class]])
 {
    if([obj viewControllers])
       //has view controllers
 }
 else if([obj isKindOfClass:[UISplitViewController class]])
 {
    if([obj viewControllers])
       //has view controllers
 }
 else if([obj isKindOfClass:[UITabBarController class]])
 {
    if([obj viewControllers])
       //has view controllers
 }
于 2012-10-10T10:04:31.563 回答