1

我正在尝试确定我indexPath的选择行,UITableView以便我可以相应地传递相关数据。现在,0无论我选择什么单元格,它都会继续记录。任何想法为什么?(是的,IBOutlet桌子的连接正确)。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"patientChart"])
    {
        UITabBarController *tabBar = (UITabBarController *)segue.destinationViewController;
        PatientChartViewController *vc = [tabBar.childViewControllers objectAtIndex:0];
        NSIndexPath *path = [self.appointmentTableView indexPathForSelectedRow];
        vc.appointmentDictionary = [self.appointmentArray objectAtIndex:path.row];
    }
}
4

2 回答 2

3

如果选择了行,则方法indexPathForSelectedRow将返回所选行的索引,否则返回 0。

因此,例如,如果cell已选择然后取消选择,那么您将无法index path通过调用获得它,[tableView indexPathForSelectedRow];因为当时没有选择任何单元格。

于 2011-11-16T06:33:19.070 回答
1

如果使用 iOS5,解决方案是在 .h 中声明一个实例并将属性设置为复制,如下所示。

NSIndexPath *path;
@property (nonatomic, copy) NSIndexPath *path;

将 indexpath 值分配给实例,即cellForRowAtIndexPath方法中的路径。

当我尝试在 iOS5 上执行此操作并如上所述解决时遇到了这个问题。希望这对你有帮助。

于 2011-11-16T06:51:28.107 回答