0

私が取り組んでいるゲームのさまざまな部分に対応するいくつかのビューコントローラーがあります。それらを画面1、2、3、4と呼びましょう。

画面1でゲームを開始し、2、3、4を表示してから、画面1に戻って最初からやり直すことができるようにしたいと思います(場合によっては、#3を省略したいなど)。UITabBarControllerを使用してこの機能を取得できましたが、タブコントロール自体を非表示にする方法がわかりませんでした。実際のコントロールを非表示にすると、その場所に白いバーが表示されます。最初の画面で機能したビューのサイズを変更しようとすると、他のサイズは画面サイズの2倍に見えました(viewWillAppearで設定)。

[[セルフビュー]setFrame:[[UIScreenmainScreen]境界]];

誰かがこの種のものをうまく機能させることができましたか?ナビゲーションコントローラーを使用してこれを行うことはできますか?

4

1 に答える 1

0

UINavigationControllerあなたの目的のためにこれはUINavigationControllerの代わりに行うことができるので、これに使用することをお勧めしますUITabBarController

ただし、続行する場合は、 :でこのメソッドを呼び出すことでUITabBarController非表示にできます。UITabBarControllerapp delegate

- (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];

}
于 2012-04-21T05:42:56.753 に答える