我有一个显示联系人列表的表格视图,当您单击一个单元格时,将弹出一个详细信息视图控制器,其中包含显示联系人姓名,电话号码,传真和地址的标签。我的问题是每次我单击一个单元格时,无论我单击哪个单元格,都会弹出plist中的第一个值。每次NSLog(@"%@",indexPath);
返回null
时,我都在indexPath中发现错误。我认为问题出在这种方法中,但在其他类中看起来相同,并且工作正常。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"showCountyInfo"])
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSLog(@"%@",indexPath);
TSPBookCoverViewController *destViewController = segue.destinationViewController;
destViewController.countyName = [[self.books objectAtIndex:indexPath.row] objectForKey:@"Name"];//error
destViewController.phoneName = [[self.books objectAtIndex:indexPath.row] objectForKey:@"Phone"];
destViewController.faxName = [[self.books objectAtIndex:indexPath.row] objectForKey:@"Fax"];
destViewController.addressName = [[self.books objectAtIndex:indexPath.row] objectForKey:@"Address"];
}
}
当我输入整数而不是
indexPath.row
时,它按应有的方式工作,因此问题出在这里,我找不到它。抱歉,很明显,我已经尝试了一段时间!编辑:
这是didSelectRowAtIndexPath方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
// Perform Segue
[self performSegueWithIdentifier:@"showCountyInfo" sender:self];
}
最佳答案
问题在于以下代码:
[tableView deselectRowAtIndexPath:indexPath animated:YES];
您正在取消选择
didSelectRowAtIndexPath:
方法内的单元格。因此,indexPathForSelectedRow
将始终返回nil关于ios - indexPath在表 View 中没有任何值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33023210/