2011-11-27 146 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的視圖本身。你的解決方案很好。