2011-10-14 56 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

我已经添加了我的代码,家是视图控制器,仍然无法正常工作。 –

相关问题