如何检查对象是否有viewControllers数组

时间:2012-10-10 09:49:24

标签: objective-c ios5 nsarray viewcontroller

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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
 }