2011-07-19 21 views
0

uinaviguation controller issue控制更好的ViewController

作为图像中所示,I具有在包含对自定义按钮BUTTOM 1的视图,只是从类似的TabBar一些视图中移动,并且在第一“标签”我有一些按钮此外,这应该推动一些意见。

我的问题是,当我添加naviguation控制器和我推视图,我得到所有的视图移动,包括buttom视图1.我只是希望它只能移动上部视图。

我厌倦了将naviguation控制器添加到第一个上部视图,但仍然无法正常工作。

请帮忙吗?

+0

为什么使用导航控制器?为什么不删除以前的视图并添加一个新视图? – 2011-07-19 20:26:22

回答

0

UINavigationController的(事实上,整个视图控制器架构)不支持只交换一些子视图。它与UITabBarController一起工作,因为标签栏控制器包含导航控制器。你真的没有这个选择。

两个选项,可以帮助有:

  1. 添加您的“视图”的不同实例既“视图”和“视图3”。

  2. 放弃UINavigationController并自行管理从“视图2”到“视图3”的转换。动画过渡并不困难,但是偏离推荐的视图控制器架构使其成为一个高级主题。

+0

谢谢大家,如果我想放弃INavigationController并管理自己的转换,我应该怎么做?它是这样的: view2 = view3; ? – hafedh

+0

这样做的一种方法是发送容器视图一个指定视图的“-addSubview:”消息3.确保视图3将位于屏幕外,可能位于视图2的右侧。然后使用Core Animation将两个视图移动到左侧,以便视图2消失并且视图3出现在屏幕上。最后,发送视图2'-removeFromSuperview'消息以将其从视图层次结构中移除。请注意,视图2和3都将由相同的视图控制器管理。 – Caleb

+0

THanks Caleb,我正在尝试,这就像工作好:) – hafedh

0

如果这些是两个单独的UIViewControllers 您可以尝试删除按钮view1并在下一个视图上分配新的。

 
[self.view1 removeFromSuperview]; 

如果在一个班两个UIViews做,你可以这样做,但没有分配新的按钮,只需:

 
[self.view3 bringSubviewToFront:view1];