在didSelectRowAtIndexPath之前调用viewDidLoad

时间:2012-01-26 09:37:06

标签: objective-c ios uitableview viewdidload didselectrowatindexpath

我有 在viewDidLoad(当前didSelectRowAtIndexPath)之前调用tableView(下一个tableView)。

我正在使用' singleton'保持我的模型,到目前为止,这一直很好。我试图通过didSelectRowAtIndexPath中的变量设置,将tableview中当前表格中选择的行传递到目标didSelectRowAtIndexPath(它们通过故事板中的segue链接)。

但是,在设置行号之前,会调用目标viewDidLoad的{​​{1}}。稍后调用tableview但到那时我已经为目标表设置了我的数据(错误)。

1 个答案:

答案 0 :(得分:5)

使用segues时,您不需要didSelectRowAtIndexPath:。您只需将segue链接到IB中的单元格即可。在代码中只需使用:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   CustomViewController *newVC = [segue destinationViewController];
   newVC.property = theDataYouWantToPass;
}

您可以通过传递的sender变量检索行。

UITableViewCell *cell = (UITableViewCell *) sender;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSInteger myRow = indexPath.row;