2011-08-30 44 views
0

我正在練習多視圖,但有一個小問題。iOS - 如何在加載新視圖後刪除先前的視圖?

當我的新視圖加載時,我仍然可以看到以前的視圖。

如何讓previos查看不可見?

這裏是我的代碼: -

- (IBAction)changeView:(id)sender 
{ 
    RedClass *red = [[RedClass alloc] initWithNibName:@"RedClass" bundle:nil]; 
    self.redClass = red; 
    [red release]; 
    //[self.view removeFromSuperview]; 
    [self.view addSubview:redClass.view];   
} 

這裏是截圖: -

enter image description here

當我取消[self.view removeFromSuperview]然後我的紅的觀點並沒有得到,甚至加載。

任何幫助,將不勝感激。

謝謝

回答

2

我認爲你的紅色視圖的顏色可能是透明的。

所以請在redclass的nib文件中檢查它。也檢查你的紅色視圖的alpha必須是1.

你不能刪除你的第一個視圖。因爲它可能在窗口或其他控制器上加載。所以如果您在視圖1中添加view2並刪除view1,則view2會自動刪除,因爲它已經在view1中。所以你不能寫[self.view removeFromSuperview];

+0

有沒有一種方法,我可以使先前的視圖不可見,然後刪除?因爲如果透明色是問題,那麼必須有一些解決方案,因爲人們可以在應用中使用透明色。 – Varundroid

+0

意味着你使用透明色嗎?使self.view.alpha = 0和red.view.alpha - 1和測試,我不知道,但檢查一次.. – PJR

+0

沒有我沒有使用透明的顏色,但更淺的紅色。和view.alpha不工作。它使我的視角變成了白色。但是,如果我將顏色更改爲藍色或綠色,則以前的視圖不可見。這是怎麼回事?爲什麼淺紅色是透明的紅色? – Varundroid

1

您可以在.h文件中聲明視圖變量。並在viewDidLoad中進行分配,並且不要在那裏發佈它。每當你想添加查看使用,[self.view addSubview:red];,當你想刪除,你可以使用[red removeFromSuperview];

1

[self.view removeFromSuperview]刪除你顯示的uiview。 所以你需要爲以前加載的視圖調用removefromsuperview併爲新的視圖調用addsubview。

相關問題