2011-06-19 15 views
5

現在我有四個UITableViewControllers如何讓UINavigationController在按下UIViewController時使用翻轉動畫

  • B1,B2
  • Ç

我需要以下效果:

  • 上形成選擇一個項目可以推到B1
  • 輕按rightBarButtonItem在B1上可以水平翻轉到B2
  • 輕按B2的rightBarButtonItem可以水平翻轉到B1
  • 選擇上B1或B2中的項目可以推到C
  • 可以彈出至A在B1或B2

所有視圖(A,B1,B2和C)應該有NavigationBar。現在

我之間A,B1,B2導航,C.我也可以用下面的代碼翻轉到B2:

//self is B1 
- (IBAction)b2ButtonPressed 
{ 
    B2ViewController* B2 = [[B2ViewController alloc] init]; 
    B2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

    [self presentModalViewController:B2 animated:YES]; 
} 

但在B2的導航欄缺失。

我在我的iPod touch上有一個應用程序具有此功能。我怎樣才能做到這一點?

回答

5

如果你表現出的模式呈現,而不是導航控制器的推或彈出視圖控制器,你應該換爲視圖控制器導航控制器,以顯示導航欄:

- (IBAction)b2ButtonPressed 
{ 
    B2ViewController* B2 = [[B2ViewController alloc] init]; 
    UINavigationController *B2Nav = [[UINavigationController alloc] initWithRootViewController:B2]; 
    B2Nav.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:B2Nav animated:YES]; 
    [B2 release]; 
    [B2Nav release]; 
} 

和Don」 t忘記在您的B2ViewController中設置導航欄的左側或右側欄按鈕項目。

+0

我需要B2上的後退按鈕,所以我可以回到A,我試過你的代碼,我只能得到NavigationBar上沒有任何按鈕 –

+0

只有-pushViewController:UINavigationController可以爲你創建一個後退按鈕,如果你目前的模態視圖控制器,你需要自己設置按鈕。 – cxa

+0

我試圖設置'self.navigationItem.backBarButtonItem',但它不顯示。然後我嘗試了'leftBarButtonItem',但是看起來我不能讓它看起來像一個後退按鈕,即在按鈕的左側有箭頭。任何其他想法? –

2

你可以使用UIView animations來使B1視圖翻轉,當動畫結束時,在父視圖中添加B2視圖?

我認爲,這會使導航欄保持原樣。

+0

我找到了一個符合你的描述的蘋果示例,我正在閱讀它。 –

+0

祝你好運。這個想法很簡單。使用UIView動畫來翻轉B1視圖,並且還會詢問動畫完成後要執行的操作。你需要告訴它,當動畫完成時需要添加B2視圖(我猜B1視圖也需要被刪除,但如果不是,那麼在從B2轉換到B1的情況下,你可以簡單地刪除B2) – 2011-06-19 17:40:39