我在 viewController 中嵌入了一个 tableViewController。问题是我想将 tableViewController 的原型(prototype)单元格内的一些 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 之后调用此方法?
最佳答案
先写在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);
}
}
关于ios - 什么时候为嵌入式 viewController 调用 prepareForSegue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266259/