2012-10-04 19 views
0

出於某種原因,我似乎無法刪除UIImageView而不刪除我所有的UIButtons。所有子視圖都添加到我的主視圖中_ourView和UIButtons沒有給出標籤(默認爲0),並且我的圖像被賦予了標籤= 5。'[[myView viewWithTag:tag] removeFromSuperview]'刪除我所有的UIButtons

當我打電話

NSInteger o = [obj intValue]; //This is the letter "O" not 0, and o = 5 in this case (which is what my subview tag is) 
UIView *hangmanView = [_ourView viewWithTag:o]; 
[hangmanView removeFromSuperview]; 
[_ourView setNeedsDisplay]; 

我的按鈕也全部消失。

任何指針?

編輯:我已經上傳我的項目到github,如果你想看到更多的代碼。以下是該文件的鏈接:https://github.com/elayman/Hangman/blob/master/Hangman/HangmanViewController.m#L172

+0

實際代碼是「o」,「zero」還是「five」? –

+0

這個視圖的標籤值是什麼?它不應該是零! – mayuur

+0

編輯 - 這是字母o不是0. o = 5,我不使用IB –

回答

0

0是標籤的默認值...所以它需要沒有標籤的第一個視圖,這可能不是你想要的。

日誌刪除,所以你可以看到究竟發生了什麼:

NSLog(@"removing %@", hangmanView) 
+0

我不想存儲對它們全部的引用我的日誌顯示正在刪除的正確視圖.. 。 很奇怪。它沒有提到我的按鈕。 –

+0

我也檢查了我的按鈕superview,它不等於hangmanView被刪除,tho標籤也不匹配。 –

1

您已將按鈕添加到圖像視圖,或與該標記匹配的視圖是按鈕的超級視圖。

檢查調試器中的標記值是什麼(它可能不是你想象的那樣)以及viewWithTag返回的視圖是什麼。

無論如何,標籤在大多數情況下是無用的。爲什麼不使用插座或插座集合,它更加明確和可讀。

+0

+1標籤厭惡。 –

+0

也許他沒有使用界面生成器......我可以理解這一點。 – Bastian

+2

@Bastian,如果不使用IB,您仍然可以存儲明確的引用,以便您稍後需要訪問的子視圖。標籤仍然是垃圾。 – jrturton

0

想通了,我不小心鬆開了我的按鈕將其添加到上海華因此他們的setNeedsDisplay後消失了。謝謝你的幫助。我只是新的目標C,並認爲addSubview消息給了superView的子視圖控制。