2012-12-03 62 views
2

我遇到了標籤問題。我有幾個標籤,需要藉助標籤進行更改。我這樣做在我的代碼,但它給出了一個例外 -[UIView setText:]: unrecognized selector sent to instance 這是我的代碼:帶標籤的UILabel,無法設置文本

UILabel *label = (UILabel *)[self.view viewWithTag:0]; 

label.text = @"empty"; 

讚賞任何幫助,謝謝。

+1

你沒有找回UILabel。嘗試將您的標籤更改爲更高的數字。 0是您的視圖中的任何內容的默認標籤將首先具有該標籤。 – Martin

回答

2

每個視圖的標籤默認爲0。

標籤

,你可以用它來識別你 應用程序的視圖對象的整數。

@屬性(非原子)NSInteger的標籤

討論

默認值爲0 您可以設置這個變量的值並使用該值後,以識別 視圖。

您的viewWithTag將返回您的self.view。所以你會得到一個UIView而不是一個UILabel,你的應用程序將崩潰。見viewWithTag的定義:

viewWithTag:

返回其標記指定的值相匹配的視圖。

- (UIView *)viewWithTag:(NSInteger)tag 參數

標籤

標記值來搜索。返回值接收方層次結構中的標籤屬性與標籤參數中的值匹配的視圖。

討論

該方法搜索當前視圖及其所有子視圖 爲指定視圖。

因此,對於您的解決方案,您需要爲每個標籤指定唯一的tag。然後使用viewWithTag:並給出您指定的標籤。

+0

謝謝,所以我可以使用任何標籤,但0? – fuskaren

+0

你確實可以0.但是如果你沒有指定一個非零的標籤,那麼每個'UIView'的標籤默認爲0。你將有很多標籤爲0的視圖。這絕對不是你想要的。當然你可以使用0,但非零標籤是無限更好。 – sunkehappy