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 に答える