来自UITableViewCell中的文本字段的值 - iOS ObjC

时间:2015-04-06 13:22:43

标签: ios objective-c uitableview

uitableview中的单元格存在一个小问题。

我在一个单元格中创建属性,我想从中获取值并发送到我的webservice:

@property (weak, nonatomic) IBOutlet UILabel *profileValueLabel;
@property (weak, nonatomic) IBOutlet UITextField *profileTextfield;

profileValueLabel只是文字,没关系,但我需要获取profileTextField值并将其与我的服务一起发送。

任何帮助?

3 个答案:

答案 0 :(得分:1)

您最好的选择是让您的UITableViewCell子类符合UITextFieldDelegate,然后为您的表视图单元子类创建一个协议(委托),该子类在调用UITextField didEndEditing方法时触发并传递表视图单元本身(也许以及要发送到Web服务的文本数据)到委托方法,以便在视图控制器中,您可以根据表中的单元格确定索引路径。然后,在视图控制器中,无论何时触发委托方法,都可以将每个单元格上的数据发送到Web服务。这可能是最干净的方法,但最好将此逻辑封装在表视图类本身中,以便使视图控制器更薄,并使两个组件之间的通信更加明确。

答案 1 :(得分:0)

您的profileTextfield属性需要位于UITableViewCell子类的头文件中。然后在您的UITableViewDataSource控制器中,一旦确定了要抓取其文本字段文本的单元格的索引路径,就可以使用[myTableView cellForRowAtIndexPath:yourCellsIndexPath].profileTextfield.text

如果您想在用户输入数据后立即获取profileTextfield属性,则需要在UITableViewCell子类和相应的委托属性中创建协议。然后创建一个类似-(void)tableViewCell:(myUITableViewCellSubclass *)cell didEndEditingProfileTextFieldWithText:(NSString *)text;的协议方法然后在UITableViewCell子类中,将profileTextField的委托设置为您的UITableViewCell子类,并使用textFieldDidEndEditing:textFieldWillReturn:委托方法。无论使用哪种方法,请调用[self.delegate tableViewCell:self didEndEditingProfileTextFieldWithText:self.profileTextfield.text]协议方法。你的tableViewController应该处理这个方法,你可以做任何你需要的东西。

答案 2 :(得分:0)

我希望你已经实现了UITableView,onE Approach的代理 NSString * tempString1; NSString * tempString2 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell1 = [tableView cellForRowAtIndexPath:indexPath];
tempString1= cell1.textLabel.text; //<-- your label 

*tempString2= cell1.textfeild.text ; // u can access the value , 

} 第二部分问题//
您需要使用服务请求嵌入tempString和tempString2变量。