【发布时间】:2016-04-08 06:13:19
【问题描述】:
当我触摸 TableView 时,我使用此方法获取 indexPath
-(NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row==0) {
return nil;
}else{
return indexPath;
}
}
我想将一个 NSString 传输到第二个 viewController,所以我的代码是这样的
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
NSString *name =self.nameArray[indexPath.row];
[segue.destinationViewController navigationItem].title = name;
id theSegue = segue.destinationViewController;
[theSegue setValue:name forKey:@"showName"];
}
但 indexPath 总是 nil,而-tableView:tableView willDeselectRowAtIndexPath indexPath 可能不会执行。
那么当我触摸单元格时如何获得正确的 indexPath? 谢谢。
【问题讨论】:
-
表格视图从第 0 行开始。确定要忽略第一行吗?
-
是的,第一个只是一个例子。
-
您需要使用 tableview 委托 didSelectRowAtIndextPath 来获取选定的行信息。并且不要忘记设置您的 tableview 委托。
-
您想在 didSelectRow 或 didDeselectRow 上获取 indexPath??
标签: ios objective-c iphone uitableview