检查rootviewcontroller的类型

时间:2013-02-05 06:30:26

标签: iphone ios objective-c xcode

我的应用中有很多导航控制器和一个标签栏控制器。现在我想检查当前我是在导航视图还是标签栏视图。我如何检查我当前的视图类。

NSString *className=self.window.rootViewController.description;
NSLog(@"class name is %@ ",className);

当我在导航控制器视图上时,输出为:

class name is <UINavigationController: 0x1cd78780>

当我在标签栏控制器上时,它会打印

class name is <UITabBarController: 0x1cdbd8d0>

我怎样才能认出它们。提前谢谢。

2 个答案:

答案 0 :(得分:3)

Class rootClass = [self.window.rootViewController class];

if (rootClass == [UINavigationController class]) {

} else if (rootClass == [UITabBarController class]) {

}

答案 1 :(得分:1)

很容易。您已经发现它的UINavigationController现在只需要从导航控制器获取顶视图控制器

NSString *className = navigationController.topViewController.description;
NSLog(@"class name is %@ ",className);
相关问题