0

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

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

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

class name is <UINavigationController: 0x1cd78780>

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

class name is <UITabBarController: 0x1cdbd8d0>

我怎么能认出他们。提前致谢。

4

2 回答 2

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

if (rootClass == [UINavigationController class]) {

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

}
于 2013-02-05T06:35:25.817 回答
1

这简单。您已经发现它的 UINavigationController 现在是否只需要从导航控制器获取顶部视图控制器

NSString *className = navigationController.topViewController.description;
NSLog(@"class name is %@ ",className);
于 2013-02-05T06:38:40.373 回答