2009-12-03 89 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 //////////// 
} 

您正在访问与放置此代码的控制器相关的视图的标记子视图。

相关问题