2009-12-03 58 views
0

我新來iphone ...嘗試此代碼,但收到的一些錯誤幫我..文本字段中的UITableView

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
........//// some code ...........////////// 
     CGRect frame = CGRectMake(5 ,10 , 320, 44); 
    UITextField *txtField = [[UITextField alloc]initWithFrame:frame]; 
    [txtField setBorderStyle:UITextBorderStyleNone]; 
    txtField.delegate=self; 
    switch (indexPath.row) { 
     case 0: 
      txtField.placeholder=editFrndBDb.frndName; 
      txtField.text=editFrndBDb.frndName; 
      txtField.tag=1; 
      break; 
     case 1: 
      txtField.placeholder=editFrndBDb.bDay; 
      txtField.text=editFrndBDb.bDay; 
      txtField.tag=2; 
      break; 
     case 2: 
      txtField.placeholder=editFrndBDb.frndNote; 
      txtField.text=editFrndBDb.frndNote; 
      txtField.tag=3; 
      break; 
     default: 
      break; 
    } 
    [cell.contentView addSubview:txtField]; 
    [txtField release]; 
    cell.selectionStyle=UITableViewCellSelectionStyleNone; 
    return cell;  
} 

-(IBAction) saveChanges:(id) sender 
{ 

    UITextField *name =(UITextField *)[self.viewWithTag:1]; 
    UITextField *bday= (UITextField *)[self.viewWithTag:2]; 

    UITextField *note=(UITextField *)[self.viewWithTag:3]; 
    //// some code //////////// 

I M使用此代碼顯示在tableview中文本框,然後從文本框訪問該值。但在「saveChange」方法「UITextField * name =(UITextField *)[self.viewWithTag:1]」中獲取錯誤「錯誤: - 視圖不是結構或聯合。 plz me out of this

回答

2

您的textfield不是ViewController類視圖的子視圖(您引用「self」的位置)。它在一個特定的UITAbleViewCell中。所以你必須弄清楚你想要哪個表格單元格的textview內容,並將其從單元格的contentview中取出。

此外,你可以節省一些麻煩,在未來,並檢查你得到一個視圖要求它時,返回如:

UIView *aView = [someView viewWithTag:1]; 
if(aView != nil){ 
... 
}else{ 
... 
} 
2

不知道這是否是在問題或一個錯字代碼:

[self.viewWithTag:1] 

,但你不應該有一個點在那裏:

[self viewWithTag:1] 
1

您的SAV碼e方法應爲:

-(IBAction) saveChanges:(id) sender 
{ 

    UITextField *name =(UITextField *)[self.view viewWithTag:1]; 
    UITextField *bday= (UITextField *)[self.view viewWithTag:2]; 

    UITextField *note=(UITextField *)[self.view viewWithTag:3]; 
    //// some code //////////// 
} 

您正在訪問與放置此代碼的控制器相關的視圖的標記子視圖。