2011-11-27 148 views
3

这只是为了确认我的解决方案: 我有两个UIView的,我想用的UIViewController的UIViewController多的UIView

在IB我已经建立3个UIViews控制之间进行切换: TOPVIEW A_View B_View

然后在viewDidLoad中我添加[

[self addSubView] A_View]; 

然后在一些IBAction为方法,我这样做

[A_View removeFromSuperview];
[self.view addSubview:B_View];

这确实是交换了两个视图,TopView就坐在那里。但我的第一个想法只是打电话[[self view] removeFromSuperView]];,然后添加B_view。 这给我一个空的屏幕?

那么我的解决方案是否正确?

预先感谢 问候 基督教

+0

请花时间格式化您的问题。这时我不知道你真的在问我们什么。 – Cyprian

回答

1

这种方式很好,而且非常简单。

如果您使用的是iOS 4.0或更高版本,则还可以在UIView中使用transitionFromView:toView:duration:options:completion:方法,该方法将为您删除并添加,并提供过渡动画。

原因[[self view] removeFromSuperview]给你留下一个空白的窗口,是因为您移除控制器的基地视图对象(包括它的子视图,例如TOP_VIEW等)从上海华(可能是窗口对象)。当您删除A_View并添加B_View时,您的解决方案可以正常工作,因为它们都是作为控制器视图的子视图添加或删除的,即self.view

2

看起来好像没什么问题。这是一个非常正常的交换风格,只需删除一个并添加另一个。

你应该时刻注意修改UIViewController的视图本身。你的解决方案很好。