Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何从UITableView的多个部分中获取所选行的部分?_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 如何从UITableView的多个部分中获取所选行的部分?

Iphone 如何从UITableView的多个部分中获取所选行的部分?,iphone,objective-c,ios,Iphone,Objective C,Ios,我的UITableView中有多个部分(大约12个部分),每个部分有一行或多行。选择行时,如何在我的UITextFieldDelegate方法中获取节号 如果在单元格中添加文本字段,如 [cell.contentview addSubview:yourtextfield]; 然后在Textfield委托上 UITableViewCell *cell = (UITableViewCell *)[[textField superview] superview]; NSIndexPath *inde

我的
UITableView
中有多个部分(大约12个部分),每个部分有一行或多行。选择行时,如何在我的
UITextField
Delegate方法中获取节号

如果在单元格中添加文本字段,如

[cell.contentview addSubview:yourtextfield];
然后在Textfield委托上

UITableViewCell *cell = (UITableViewCell *)[[textField superview] superview];
NSIndexPath *indexPath = [yourTableView indexPathForCell:cell];

NSLog(@"your Indexpath %d",indexPath.section);

如果在单元格中添加文本字段,如

[cell.contentview addSubview:yourtextfield];
然后在Textfield委托上

UITableViewCell *cell = (UITableViewCell *)[[textField superview] superview];
NSIndexPath *indexPath = [yourTableView indexPathForCell:cell];

NSLog(@"your Indexpath %d",indexPath.section);

如果在interface builder中手动创建了表视图,即使用静态单元格,则可以在每个UITextField中使用标记,然后在委托方法中检查该标记


对于12个部分,您可以将标记编号为,例如,1203是第12部分的第3行,600是第6部分的第0行。

如果您在interface builder中手动创建了表格视图,即使用静态单元格,则可以在每个UITextField中使用标记,然后在委托方法中检查


对于12个部分,您可以将标记编号为,例如,1203是第12部分的第3行,600是第6部分的第0行。

当用户选择该行时,您的代码需要处理对的调用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        ** your code here**
    }
传递到此方法的
indepath
包含节和行。了解如何使用它的最好方法是查看nsindepath的文档,但我相信

indexPath.section 

这就是你需要的

当用户选择行时,代码需要处理对的调用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        ** your code here**
    }
传递到此方法的
indepath
包含节和行。了解如何使用它的最好方法是查看nsindepath的文档,但我相信

indexPath.section 
这就是你需要的

试试这个:-

-(void) textFieldDidBeginEditing:(UITextField *)textField {


    UITableViewCell *clickedCell = (UITableViewCell *)[textField superview];
    int section = [topicTable  indexPathForCell:clickedCell].section;
    NSLog(@"section %d", section);

}
试试这个:-

-(void) textFieldDidBeginEditing:(UITextField *)textField {


    UITableViewCell *clickedCell = (UITableViewCell *)[textField superview];
    int section = [topicTable  indexPathForCell:clickedCell].section;
    NSLog(@"section %d", section);

}

它显示标签值、文本字段值,请尝试此代码(使用标签)


它显示标签值、文本字段值,请尝试此代码(使用标签)

但是,我建议您将来在使用uitableviewcell执行标记操作时创建customcell


不过,我建议您将来在使用uitableviewcell执行标记操作时创建一个customcell。第1节第12行或第11节第2行?第1节第2行为两位数,例如ss,第2行为两位数,例如rr so格式为ssrr,例如第1节第12行为112,第11节第2行为1102,这一点令人担忧,但当苹果提供了一种已经实现这一点的方法时,这仍然是一个糟糕的想法。按自己的方式做意味着在开始之前解析标记并了解行和节的上限,如果你想在应用程序生命周期的后期更改这些限制,你必须重做。你不觉得这很恶心吗?我同意。superview的答案要好得多,尤其是在维护方面。这个主意太糟糕了。第1节第12行或第11节第2行?第1节第2行为两位数,例如ss,第2行为两位数,例如rr so格式为ssrr,例如第1节第12行为112,第11节第2行为1102,这一点令人担忧,但当苹果提供了一种已经实现这一点的方法时,这仍然是一个糟糕的想法。按自己的方式做意味着在开始之前解析标记并了解行和节的上限,如果你想在应用程序生命周期的后期更改这些限制,你必须重做。你不觉得这很恶心吗?我同意。superview的答案要好得多,尤其是在维护方面。如果在cell.contentview中添加了textfield,则[textfield superview]将返回单元格的contentview。如果在cell.contentview中添加了textfield,则[textfield superview]将返回单元格的contentview..这是被接受的回答将其更正为此之前的正确答案。这是被接受的回答将其更正为此之前的正确答案。