所以我在视图控制器上显示模型控制器。我在模型控制器中有文本,但不知何故文本不可见。我尝试了一切,但不知何故标签不可见。但是你留在页面上的时间是30到40秒,文字出现了。此外,在成功服务(REST)调用之后,将从主视图控制器调用此模型控制器。如果我在没有进行服务调用的情况下调用模型,那么标签在模拟器/ iPad中都可见。但如果我在成功块内的服务调用后调用它,则标签不可见。我尝试以编程方式添加文本,但仍然是同样的问题。我尝试使用Color混合图层进行调试,但标签在视图中根本不可见。 :(
[self.serviceManager getCustDetails:account successBlock:^(NSDictionary * successDict) {
[self hideLoadingAnimation];
NSDictionary *custData = [[successDict objectForKey:@"txnData"] objectForKey:@"custData"];
self.showCurrYear = [iraContribData objectForKey:@"showCurrYear"];
if ([self.showCurrYear isEqual: @"true"]){
[self performSegueWithIdentifier:@"CSegue" sender:self];
}
} failureBlock:^(NSDictionary * failureDict) {
[self hideLoadingAnimation];
NSLog(@"Failiure Dict %@",failureDict);
}];
这就是prepareForSegue方法, -
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"CSegue"]) {
CustViewController *cVC = segue.destinationViewController;
cVC.delegate = self;
[cVC setModalPresentationStyle:UIModalPresentationFormSheet];
cVC.preferredContentSize = CGSizeMake(800,750);
}
}
下面是我在故事板中的屏幕,但在模拟器中标签不可见,只有继续并且关闭按钮可见。
请帮助!,欢迎任何建议。谢谢!
答案 0 :(得分:1)
延迟可能是由于未在主线程上进行用户界面更新。
尝试确保使用dispatch_async
在主线程上执行代码,如下所示:
[self.serviceManager getCustDetails:account successBlock:^(NSDictionary * successDict) {
dispatch_async(dispatch_get_main_queue(), ^{
[self hideLoadingAnimation];
NSDictionary *custData = [[successDict objectForKey:@"txnData"] objectForKey:@"custData"];
self.showCurrYear = [iraContribData objectForKey:@"showCurrYear"];
if ([self.showCurrYear isEqualToString:@"true"]){
[self performSegueWithIdentifier:@"CSegue" sender:self];
}
});
} failureBlock:^(NSDictionary * failureDict) {
dispatch_async(dispatch_get_main_queue(), ^{
[self hideLoadingAnimation];
NSLog(@"Failiure Dict %@",failureDict);
});
}];