2011-10-14 59 views
1

所有我首先顯示此圖片,以便我可以參考它。彈出並在標籤欄應用程序中推送視圖

My application screenshot

基本上我想實現的是,你可以看到第一個已經選擇了選項卡,並正在顯示視圖。我有一個按鈕,其上有一個「 - , - 」,我想要做的是點擊該按鈕時,它從該選項卡彈出視圖,並推送另一個視圖。我能夠通過這樣來改變視圖:

FourthViewController *home = [[FourthViewController alloc] initWithNibName:@"FourthView" bundle:nil]; 
[self presentModalViewController:home animated:YES]; 
[home release]; 

但我失去的標籤向下探底:<如下面的例子將顯示:

enter image description here

我不知道哪方向頭,但我已經試過這和它的失敗:

UINavigationController *navController = self.navigationController; 
// retain ourselves so that the controller will still exist once it's popped off 
[[self retain] autorelease]; 
// Pop this controller and replace with another 
[navController popViewControllerAnimated:NO]; 
[navController pushViewController:home animated:NO]; 

我也試過這樣:

FourthViewController *home = [[FourthViewController alloc] initWithNibName:@"FourthView" bundle:nil]; 
[self.navigationController pushViewController:home animated: YES]; 
[home release]; 

有人可以幫我嗎?

回答

1

刪除按鈕和文本,將它們移動到一個新的UIView。添加這個新的UIView作爲子視圖。該按鈕應告訴控制器刪除此子視圖並添加另一個。

+0

有沒有關於這個的任何教程?或者你能給我提供什麼? –

+0

也許這個類似的例子將幫助http://stackoverflow.com/questions/5117721/multiple-view-states-in-interface-builder – meggar

+0

沒有真正幫助很多。我遇到同樣的問題 –

2

使用導航控制器推視圖控制器是做它的方式(你不能彈出根控制器,它是你彷彿想在這裏做),但是

UINavigationController *navController = self.navigationController; 

只會返回如果視圖控制器(自我)有一個導航控制器,它不在默認的標籤欄應用程序中(檢查navController是否爲零)。如果您查看MainWindow.xib,則標籤欄控制器應該具有視圖控制器項目,將其更改爲導航控制器,並將其根視圖控制器設置爲您想要的。

+0

如何將新視圖添加到堆棧? –

+0

您在導航控制器上按下視圖控制器[navController pushViewController:home animated:NO]; (家應該是一個視圖控制器) – jbat100

+0

我已經添加了我的代碼,家是視圖控制器,仍然無法正常工作。 –

相關問題