我是iphone的新手...尝试这段代码但得到一些错误可以帮助我..
- (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 ////////////
我使用此代码在tableview中显示文本字段,然后从文本字段中访问该值。但是在“saveChange”方法中获取错误“UITextField * name =(UITextField *)[self.viewWithTag:1]”错误: - 视图不是结构或联合。 请告诉我这个
答案 0 :(得分:2)
您的文本字段不是ViewController类视图的子视图(您在其中引用“self”)。它位于特定UITAbleViewCell
内。因此,您必须确定要从哪个表格单元格中获取textview内容,并将其从单元格的内容视图中删除。
此外,您可以在将来省去一些麻烦,并在检查时检查您是否获得了一个视图,例如:
UIView *aView = [someView viewWithTag:1];
if( aView != nil ){
...
}else{
...
}
答案 1 :(得分:2)
不知道问题或代码中是否是拼写错误:
[self.viewWithTag:1]
但你不应该在那里有一个点:
[self viewWithTag:1]
答案 2 :(得分:1)
您的保存方法代码应为:
-(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 ////////////
}
您正在访问与放置此代码的控制器相关的视图的标记子视图。