2011-07-01 42 views
0

我在UITableView中有幾個UITextField。我爲這些字段分配了不同的標籤,但是我面臨的問題是從其他幾個函數訪問這些UITextField。如何在多個函數中通過標記訪問UITableView中的UITextField

如何訪問它們? 這裏是我的代碼: -

UITextField * textField =(UITextField *)[self.view viewWithTag:0];

任何人都可以幫忙嗎?

+0

什麼問題?這個問題需要更多的信息來確定你正在試圖完成什麼。 – zaph

+0

你的代碼看起來正確。你怎麼了 ?你的標籤只使用整數嗎? – teriiehina

回答

1

我在我的一個應用程序中有相同的功能,我使用下面的代碼來實現這一點,我從來沒有遇到過這種問題。

首先,您需要將所有textField值臨時存儲在Array中。像這樣做數組。

arrTemp=[[NSMutableArray alloc]initWithObjects:[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""], 
[NSString stringWithFormat:@""],nil]; 

Then Give all textField tag = indexPath.row;

之後您需要在以下兩種方法中替換textField值。

-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [arrTemp replaceObjectAtIndex:textField.tag withObject:textField.text]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField{ 
[arrTemp replaceObjectAtIndex:textField.tag withObject:textField.text]; 
} 

最後您需要在cellForRowAtIndexPath datasource方法中設置該值。因此,無論何時滾動tableview,它都會從temp數組中設置以前的值。喜歡這個。

cell.txtEntry.text = [arrTemp objectAtIndex:indexPath.row]; 
+0

如果要訪問整個TextField,則此代碼用於訪問UITextField的值,而不是您可以添加UITextField而不是UITextField Text。 – Deeps

+0

這很好用。謝謝。 – leena

4

您不應該使用0作爲視圖標記。 0將是沒有設置顯式標籤值的任何視圖的值,所以這不會拉出您期望的視圖。

我建議你從100開始你自己的標籤,雖然這只是一個任意的圓數。

但0肯定不會按預期工作!

相關問題