2012-04-21 159 views
0

我有幾個視圖控制器用於我正在處理的遊戲的各個部分,我們稱之爲屏幕1,2,3,4。以編程方式在iPhone視圖控制器之間切換

我希望能夠在屏幕1上開始遊戲,然後顯示2,3,4然後回到屏幕1並重新開始(有時候我想要忽略#3等) 。我已經設法用UITabBarController獲得這個功能,但我無法弄清楚如何隱藏選項卡控制本身。如果我隱藏了實際的控件,它只會在它的位置顯示一個白色條。如果我試圖調整它在第一個屏幕上的視圖大小,那麼其他人看起來是屏幕大小的兩倍(在viewWillAppear中設置):

[[self view] setFrame:[[UIScreen mainScreen] bounds]];

有沒有人設法讓這種事情工作?我能夠使用導航控制器來做到這一點嗎?

回答

0

我建議您使用UINavigationController,因爲您的目的可以使用UINavigationController而不是UITabBarController來完成。

但是,如果你想繼續UITabBarController,那麼你可以通過在app delegate調用此方法隱藏UITabBarController

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

} 
+0

你的建議非常完美!這花了我數小時來追蹤,非常感謝你的幫助! – Damian 2012-04-21 07:22:24

相關問題