检查tabBar是否在iOS应用上可见

Val*_*imb 7 iphone tabbar uitabbarcontroller ipad ios

我正在开发一个iOS应用程序,它有一个UITabBarController用于显示TabBar.在某些地方,我提出了一个隐藏tabBar的modalView全屏.

我想检测我的tabBar何时对用户可见.有什么方法可以在de tabBar可见时自动检查?

我试过了:

但它确实不起作用,因为tabBar并没有真正隐藏.

if ([[[appdelegate tabBarController] tabBar] isHidden])
{
    NSLog(@"tabBar IS HIDDEN");
}
else
{
    NSLog(@"tabBar IS VISIBLE");
}
Run Code Online (Sandbox Code Playgroud)

我在BaseViewController中编写了这段代码,这是我的模态视图的超类和我项目的其他视图.

谢谢.

Jul*_*ról 7

检查这个[[[self tabBarController] tabBar] isHidden]很好,但在一种情况下会失败.如果你在该视图中没有标签栏(根本没有),那么[self tabBarController]返回nil所以调用isHidden将返回NO,这是事实,但你必须检测到这种情况,这是其他情况.它不是隐藏的,但它不会退出,除了检查你应该添加[self tabBarController] != nil.所以基本上:

if([self tabBarController] && ![[[self tabBarController] tabBar] isHidden]){
    //is visible
} else {
    //is not visible or do not exists so is not visible
}
Run Code Online (Sandbox Code Playgroud)


Tos*_*lji 5

你可以试试这个

if ([[[self tabBarController] tabBar] isHidden]){

    NSLog(@"tabBar IS HIDDEN");
}
else
{
    NSLog(@"tabBar IS VISIBLE");
}
Run Code Online (Sandbox Code Playgroud)