【发布时间】:2014-10-13 13:13:39
【问题描述】:
我正在尝试将数据从 UITableViewCell 推送到另一个视图控制器。我尝试了两种不同的方法,instantiateViewControllerWithIdentifier 和PrepareForSegue。在这两种情况下,ViewController 都正确加载,但没有传递数据(null 或第一个数组值)。
这是我的 instantiateViewControllerWithIdentifier 方法,当我在 ViewController 中记录变量时,它只返回 null。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *testNumber = [jobNumberArray objectAtIndex:indexPath.row];
NSLog(@"Job is... %@",testNumber);
StandardInfoViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"StandardInfoViewController"];
controller.JobNr = [jobNumberArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:controller animated:YES];
}
为转场做准备
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"Details" sender: self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"Details"]){
StandardInfoViewController *controller = (StandardInfoViewController *)segue.destinationViewController;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
controller.jobNumber = [jobNumberArray objectAtIndex:indexPath.row];
}
}
当我使用 prepareForSegue 调用时,我得到了数组的第一行,我理解这是因为它不知道单元格,但我不知道如何在 prepareForSegue 调用中识别单元格。
我希望这是有道理的,任何帮助或指点将不胜感激。
谢谢
【问题讨论】:
-
JobNr是如何声明的? -
JobNr 在我的 ViewController.h 中被声明为 NSString
-
嗯,这很明显。但是怎么做?
-
抱歉。 @property (nonatomic, 保留) NSString *JobNr;
-
NSString 应始终声明为
copy
标签: ios objective-c xcode uitableview segue