我在viewController中嵌入了一个tableViewController。问题是我想将tableViewController的原型单元格中的一些UITextFields值传递给主viewController。我的策略是使用prepareForSegue来获取tableViewController中的所有东西。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"DiveGearDetail"]) {
DiveGearDetailTableViewController *DGTVC = [segue destinationViewController];
gear_name = DGTVC.nameLabel.text;
NSLog(@"Gear name: %@", gear_name);
}
}
这是一个好策略吗?何时在viewDidLoad之后调用此方法?
答案 0 :(得分:1)
首先写入tableview的didSelectRowAtIndexPath方法
[self performSegueWithIdentifier:@"DiveGearDetail" sender:nil];
此方法将调用prepareForSegue,您可以在目标类中指定要分配的值,如下所示:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"DiveGearDetail"]) {
DiveGearDetailTableViewController *DGTVC = [segue destinationViewController];
DGTVC.gear_name = @"Your value"; // OR [[segue destinationViewController] setYourObject:value];
NSLog(@"Gear name: %@", gear_name);
}
}