2011-05-31 54 views
0

林有點困惑...來回,removeFromSuperView

我有一個主視圖,它通過點擊一個按鈕顯示子視圖。接下來我想要做的是 能夠在Main和Sub之間來回切換,但是當我這樣做時,從子視圖返回按鈕使得子視圖按鈕被禁用......我似乎無法第二次訪問子視圖。什麼都沒發生。

我已經是一個UIButtonIBAction,這是我寫的「[self.view removeFromSuperView];」。

請不要誤會我在這裏,我也回到了MAINVIEW。問題是我不能回到子視圖後。

我讀過關於保留子視圖的文檔中的東西......但我不太明白如何去做。

任何人都可以請解釋一下嗎?

謝謝!

回答

0

爲什麼不試試這個?

打開UR子視圖:

Ursubview *Ursubview =[[Ursubview alloc] initWithNibName:nil bundle:nil]; 
Ursubview.modalPresentationStyle = UIModalPresentationFullScreen; 
[self presentModalViewController:Ursubview animated:YES]; 

回去:

[self dismissModalViewControllerAnimated:YES]; 
+0

謝謝!事情是,我有一個自定義的viewtransition已經設置好了,我真的很想使用... [self.view insertSubview:myViewController.view belowSubview:imageWheel] ;;我唯一的問題是我想能夠切換回來。 – andy 2011-05-31 08:28:48

1

這只是一個猜測,因爲你沒有提供太多的代碼: - 你可能首先需要保留風景。如果它只保留在當前的超級視圖 [self.view retain];

記得在不再需要時手動釋放它。 [self.view release];

+0

是的,我已經試過...仍然沒有影響:(也許我需要實現保留計數? – andy 2011-05-31 09:33:26

+0

保留計數不應該經常使用,你可以通過檢查:'NSLog(@「%d」,[ self.view retainCount]);'或'NSLog(@「%@」,self.view「);'。如果在控制檯中得到0或null,那麼你在代碼的某個地方釋放視圖因爲你在removeFromSuperView之前保留它,所以必須在某處顯式地調用'release'或'autorelease') – 2011-05-31 11:02:39

+0

除非你每次都重建子視圖,否則你必須保留在superview中。按鈕不起作用可能是因爲你的子視圖在第二次嘗試「去它」時不再存在,我建議你簡單地使用subview.hidden = YES;而不是刪除它。與分配和分配混亂 – 2011-06-01 03:53:46

0

爲什麼不只是隱藏它而不是去除它?