当我在prepareForSegue函数中搜索数据时如何获取indexPath

时间:2016-09-01 08:20:49

标签: ios objective-c iphone segue uisearchcontroller

我有问题。
我有一个tableView和searchController 当我搜索" C"时,我得到两个名称标题为" C"的数据。
但是当我按下单元格时,detailView会为我提供错误的信息。

NSArray *searchResult;
UISearchController *mysearchController;


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([segue.identifier isEqualToString:@"getDetail"]) {

    if (searchResult != nil) {

        DetailViewController *detailViewController = segue.destinationViewController;

        NSIndexPath *indexPath =  [searchResult..............];
        NSDictionary *item = searchResult[indexPath.row];
        detailViewController.detailName = item[@"name"];
        detailViewController.detailLocation = item[@"address"];


    }else{

        DetailViewController *detailViewController = segue.destinationViewController;

        NSIndexPath *indexPath = self.listTableView.indexPathForSelectedRow;
        NSDictionary *item = self.InfoArray[indexPath.row];
        detailViewController.detailName = item[@"name"];
        detailViewController.detailLocation = item[@"address"];

    }
  }

}

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要使用didSelectRowAtIndexPath的{​​{1}} delegate方法传递Indexpath。 所以你的代码看起来像这样,

示例代码:

UITableview

希望它有效:)

如果有任何问题,请告诉我。