我有 2 个 TableView ,都填充了数据。两者都与 detailView 相关。一个是动物,第二个是国家。我想根据动物居住的国家传递数据,从动物的细节到国家的细节显示。由于从 countrymainController 移动数据,已经在 countryDetail.h 中创建了 PFObject。 segue 中的 NSlog 从 Parse 中正确返回所有值。感谢您的任何建议
animalDetail.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"sendi"])
{
ViewControllerimagescale *vco = [segue destinationViewController];
vco.bomb = self.objc;
}else{
PFQuery *query = [PFQuery queryWithClassName:@"Countries"];
[query whereKey:@"Wherelive" equalTo:[self.objc objectForKey:@"CouWherelive"]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (PFObject *object in objects) {
ViewControllerDetail *vco = [segue destinationViewController];
vco.objc = object;
NSLog(@"KOKOE%@", object);
}
} else {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
}
在countrydetail.h中已经正常设置了pfobject
@property (nonatomic, strong) PFObject *objc;
最佳答案
其实就是“过”。但是,findObjectsInBackgroundWithBlock:
调用是异步的。这意味着您的数据 (NSArray *objects
) 很有可能非常在目标 View Controller 出现之前没有被获取。
要么使用像 findObjects
这样的同步调用,要么在异步 block 中调用像 [self performSegueWithIdentifier:@"sendi"sender:nil]
这样的东西。
关于ios - Parse.com segue 不会传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110439/