2012-07-31 17 views
0

我有一個tableview與多個動態tableview單元格,並在每個tableviewcell我有多個textfields。每個單元格都有不同的標籤,但texfields不是!我需要檢索用戶稍後將插入的信息。我正在使用界面構建器。訪問沒有標記的uitextfield

是否可以訪問未標記的texfield?

我可以使用「用戶定義的運行時屬性」來管理它嗎?

感謝

回答

2

這是使用iOS開始的常見錯誤。

您不應該直接引用文本字段以便在表格視圖中檢索存儲在其中的信息,尤其是。在表格視圖中,當單元格從屏幕上滾動時,單元格很可能會被重用,並且存儲在那裏的信息將永遠消失。

相反,存儲文本當用戶結束通過設置視圖控制器作爲文本字段代表,然後實施textFieldDidEndEditing:委託方法編輯文本字段:

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    // Store the textField.text value somewhere for later use. 
} 
+0

所以我必須創建一個「很多」extFieldDidEndEditing事件(因爲我在每個單元格中有很多texfields),這樣我就可以訪問它們了。我的意思是,我應該在IB中爲每個文本字段連接該事件,然後在extFieldDidEndEditing方法中處理它們?感謝您的幫助 – Japa 2012-08-01 17:09:31

+1

不,只有一個'textFieldDidEndEditing:'委託方法,並且所有的textField的調用都是相同的。你需要一些方法來區分它們。通常在tableview中,你使用標籤的組合(我會爲他們定義像MYTABLEVIEWROW_NAME_TAG這樣的常量)和行號。 – lnafziger 2012-08-01 17:15:12

+0

感謝您再次回答。所以我沒有其他選擇,只能在每個uitableviewcell內部的每個文本字段上使用標籤。我的問題是,我的細胞裏面至少有6個texfield',並且它們是動態的。每當用戶按下綠色加號按鈕時,都會創建新的標籤?我不知道這個......我卡住了! – Japa 2012-08-01 20:02:03

0

你可以在每個小區的子視圖,並檢查它是否爲UITextField,是這樣的:

for (UIView *subview in cell.subviews) { 
    if ([subview isKindOfClass:[UITextField class]]) { 
     // do something with the text field... 
    } 
} 

說了這麼多,這可能不是最好的方法......你也會做最好給每個textField一個標籤,或者用包含textFields作爲屬性的自定義單元格對該單元格進行子類化。

+0

但如何可以區分每個小區,如果內部的每個texfield我沒有標記他們? – Japa 2012-08-01 17:10:31