另一个方法中的 UITableViewCell 文本字段值
Posted
技术标签:
【中文标题】另一个方法中的 UITableViewCell 文本字段值【英文标题】:UITableViewCell text field value in another method 【发布时间】:2017-01-09 08:21:02 【问题描述】:-(void)sendcomment:(UIButton *)sender
NSLog(@" send commment server");
thirdviewcellTableViewCell *dja =[[thirdviewcellTableViewCell alloc] init];
NSString *vga = [[NSString alloc] init];
vga=dja.celltext;
NSLog(@"comment value is %@",vga);
NSLog(@"comment cell value is %@",dja.celltext);
【问题讨论】:
在此方法中,您将创建一个本地 textField 并尝试获取其文本。但它应该是空的。您应该为该类保存具有全局值的 textField。 【参考方案1】:-(void)sendcomment:(UIButton *)sender
UIButton *button = (UIButton*)sender;
NSIndexPath *indexpath = [NSIndexPath indexPathForRow:sender.tag inSection:0];
UITableViewCell *cell = (UITableViewCell*)[tblView cellForRowAtIndexPath: indexpath];
// If you have text field
UITextField *textfiled = (UITextField *)[cell.contentView viewWithTag:yourtextfeildtagvlaue];
// NSString *vga = textfiled.text
【讨论】:
【参考方案2】:如果单元格按住按钮,您可以这样做:
-(void)sendcomment:(UIButton *)sender
// 1. get the position the button you clicked
CGPoint correctedPoint = [sender convertPoint:button.bounds.origin toView:self.tableView];
// 2. find the cell via the position
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:correctedPoint];
thirdviewcellTableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];;
// 3. then you can get the TextField value
NSString *textFieldValue = [[NSString alloc] init];
textFieldValue = cell.celltext;
【讨论】:
【参考方案3】:您使用单元格的层次结构获取您的单元格
-(void)sendcomment:(UIButton *)sender
UIButton *button = (UIButton*)sender;
NSIndexPath *indexpath = [NSIndexPath indexPathForRow:sender.tag inSection:0];
UITableViewCell *cell = (UITableViewCell*)sender.superview.superview;// get cell using view hierarchy
// If you have text field
UITextField *textfiled = (UITextField *)[cell.contentView viewWithTag:yourtextfeildtagvlaue];
// NSString *vga = textfiled.text
*
【讨论】:
【参考方案4】:在您的操作方法中,您可以找到您的 TextField,如下所示: 您可以从 SuperView 中找到 IndexPath。 请参阅下面的代码。
UIView *superView = btn.superview;
while (![superView isKindOfClass:[UITableViewCell class]])
superView = superView.superview;
CustomCell *cell = (CustomCell *)superView;
您将从 cell.yourTextFeld
获得 UITextField
对象。
您可以根据需要使用 TextField。
【讨论】:
以上是关于另一个方法中的 UITableViewCell 文本字段值的主要内容,如果未能解决你的问题,请参考以下文章
当用户滚动 uitableview 时,UITableViewCell 中的文本会被删除
从另一个视图控制器单击 uitableviewcell 后,swift 3 更改 uitableviewcell?
自定义 uitableviewcell 中的 Uibuttons
UITableViewCell 中的 UIButton 使用 Storyboard 执行对另一个 UIViewController 的 Segue