Iphone 如何清除UITableview的CustomCell的UITextField中的文本?

Iphone 如何清除UITableview的CustomCell的UITextField中的文本?,iphone,xcode,uitableview,uitextfield,subclass,Iphone,Xcode,Uitableview,Uitextfield,Subclass,我在UITableview的CustomCell中有一个UITextField,我正在将此UITableview用作Mainview的子视图。还有另一个UITableview也在我的Mainview上,但我正在将此UITableview用作我的Mainview的子类。下图也将有助于理解我的问题 如图所示,上面的UITableview是我的子类UITableviw,下面的一个是单行UITableview,CustomCell有UITextField。现在,我希望当我单击子类UITableview

我在UITableview的CustomCell中有一个UITextField,我正在将此UITableview用作Mainview的子视图。还有另一个UITableview也在我的Mainview上,但我正在将此UITableview用作我的Mainview的子类。下图也将有助于理解我的问题

如图所示,上面的UITableview是我的子类UITableviw,下面的一个是单行UITableview,CustomCell有UITextField。现在,我希望当我单击子类UITableview的任何单元格时,我的UITextField文本都是清晰的,这是UITableview的CustomCell中的文本

注意:-为了让我的问题更简单,我有一些代码,当我的主视图(而不是UITableview的CustomCell)上有UITextfield时,这些代码对我有效。以下是我的代码。 在Mainview.h文件中

#import <UIKit/UIKit.h>
#import "Inputtableview.h"
@interface testingViewController : UIViewController<UITextFieldDelegate,UITableViewDelegate,UITableViewDataSource> {
IBOutlet UITextField *txtfinput;
Inputtableview *inputview;
IBOutlet UITableView *inputtbl; 
}
@property (nonatomic, retain) UITextField *txtfinput;
@end
现在在我的UITableview.h文件的子类中

#import <UIKit/UIKit.h>
@interface Inputtableview : UITableViewController<UITableViewDelegate,UITableViewDataSource> {
}
@property (nonatomic, assign) UITextField *myAccessToMaintxtf;
@end

正如我前面提到的,当我在主视图中有TextField时,上面的代码可以正常工作,但当我想在UITableview的CustomCell中清除UITextField的文本时,不知道如何修复它。任何帮助都将提前通知.Thanx。

您是否将MyAccessToIntxtf添加到dataSource cellForRowAtIndexPath中UITableViewCell的子视图中?如果您这样做了,您仍然必须使用[tableView reloadCellAtIndexPath:…]重新加载单元格


或者另一个建议是对UITableViewCell进行子类化,并添加Outlet属性,将Outlet连接到TextField。然后您可以执行类似selectedCell.textField.text=@“的操作;在中,您选择了rowatindexpath

好的,我看不出您是如何将“MyAccessToMainXTF”连接到CustomCell中的文本字段的。从自定义单元格中获取子视图所使用的是“标记”。标记可以用作子视图的标识符。因此,如果您正在使用xib,您可以在textfield的设置选项卡中设置标记,如果您正在通过代码创建textfield,您可以设置标记,如下所示:

 myAccessToMaintxtf.tag = 11; //11 is and example number, use the number that you want
然后,当您想要访问文本字段时,请使用:

theTextFieldToClear = (UITextField*)[theCellWithTheTextFieldToClear viewWithTag:11];
您可以在UIView类参考中找到有关标记的更多信息:

祝你好运

编辑2:

如果您使用两个表,并且希望清除一个表中的一个textfield,然后选择另一个表,那么我认为您需要一些东西来在一个表中选择的indexPath和包含textfield的单元格的indexPath之间建立链接。如果您正在使用以下内容:

表1,indexpath:0,0代表celcius; 表1,indexpath:0,1表示farenheit; 表1,indexpath:0,2表示开尔文

表2,indexpath:0,0代表celcius; 表2,indexpath:0,1表示farenheit; 表2,indexpath:0,2表示开尔文

您可以使用相同的indexPath从另一个TABLEVIEW(InputableView)获取包含textfield的单元格,如下所示:


谢谢你的快速回复,但我没有理解你的解释。如果你在这里用我的代码解释的话,会更好。好的,很抱歉给你带来困惑。我今晚晚些时候再做。我认为你的想法是对的,但我面临的问题是,请看,你在InputableView中只有一行(并且将始终有一行)?如果你在InputableView中有更多行…你将始终使用相同的行顺序?比如:法伦海特,第一排;开尔文,第2排;谢谢你帮助我,所以我只面临一个问题,请检查它好的,这里有一些我遗漏的东西。哪些对象是可输入数据的数据源?
 myAccessToMaintxtf.tag = 11; //11 is and example number, use the number that you want
theTextFieldToClear = (UITextField*)[theCellWithTheTextFieldToClear viewWithTag:11];
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    UITableViewCell *cellWithTheFieldToClear = [yourInputTableView cellForRowAtIndexPath:indexPath];
    theTextFieldToClear = (UITextField*)[theCellWithTheTextFieldToClear viewWithTag:2];
    theTextFieldToClear.text = @"";
}