0

現在、テーブル ビューをロードする 5 つのボタンをホストする firstTabViewController をセットアップしています。ユーザーがテーブル セルの 1 つを選択すると、4 つの異なるタブ ボタンのセットを含む secondTabViewController が開きます。ナビゲーションコントローラーも埋め込んでいます。

ストーリーボードを介して設定しましたが、いくつかの問題が発生しました。まず、secondTabViewController をロードすると、firstTabViewController 内にロードされるため、2 セットのタブ ボタンが重なり合っています。セグエをモーダルに変更すると、secondTabViewController が正しく読み込まれますが、ナビゲーション コントローラーを使用して戻ることはできません。

これに対する解決策はありますか、それともストーリーボードを使用して時間を無駄にするのをやめて、プログラムで設定するだけですか?

スクリーンショット:ストーリーボード

4

2 に答える 2

0

タブバーを非表示にしたいときにこのコードを使用します。どこから盗んだのか忘れましたが、SOでここにあったと確信しています。

- (void) hideTabBar:(UITabBarController *) tabbarcontroller {


[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in tabbarcontroller.view.subviews)
{
    if([view isKindOfClass:[UITabBar class]])
    {
        [view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
    } 
    else 
    {
        [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
    }

}

[UIView commitAnimations];





}

- (void) showTabBar:(UITabBarController *) tabbarcontroller {

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in tabbarcontroller.view.subviews)
{

    if([view isKindOfClass:[UITabBar class]])
    {
        [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];

    } 
    else 
    {
        [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
    }


}

[UIView commitAnimations]; 
}
于 2012-07-17T16:09:20.293 に答える
0

元の戦略を使用して、2 番目のタブ バー ビューを開いたときに、最初のタブ ビュー コントローラーのタブ バーを非表示にします。

于 2012-07-17T16:17:57.530 に答える