7

TabBar を表示するための UITabBarController を持つ iOS アプリに取り組んでいます。一部の場所では、tabBar を非表示にする modalView フルスクリーンを表示します。

私のタブバーがいつユーザーに表示されるかを検出したい。タブバーが表示されているかどうかを自動的に確認する方法はありますか?

私はそれを試しました:

しかし、tabBar は実際には非表示ではないため、実際には機能しません。

if ([[[appdelegate tabBarController] tabBar] isHidden])
{
    NSLog(@"tabBar IS HIDDEN");
}
else
{
    NSLog(@"tabBar IS VISIBLE");
}

このコードは、モーダル ビューとプロジェクトの他のビューのスーパー クラスである BaseViewController に記述します。

ありがとう。

4

8 に答える 8

6

これを確認すること[[[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
}
于 2014-05-26T12:46:24.230 に答える
5

これを試すことができます

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

    NSLog(@"tabBar IS HIDDEN");
}
else
{
    NSLog(@"tabBar IS VISIBLE");
}
于 2013-08-13T12:37:13.220 に答える
-1

windowのプロパティを確認しますtabBar。このプロパティは、表示されていない場合に設定されnilますUIView

if((BOOL)[[[self tabBarController] tabBar] window])
{
    // visible
}
else
{
    // not visible
}
于 2014-05-26T13:55:11.593 に答える