2016-08-04 27 views
0

So zeige ich einen Modell-Controller oben auf einem View-Controller. Und ich habe Texte im Model Controller, aber irgendwie sind die Texte nicht sichtbar. Ich habe alles versucht, aber irgendwie sind Labels nicht sichtbar. Aber von Ihnen bleiben auf der Seite für etwa 30 bis 40 Sekunden der Text angezeigt. Auch dieser Modellcontroller wird nach einem erfolgreichen Dienst (REST) ​​-Aufruf vom Hauptansicht-Controller aufgerufen. Wenn ich das Modell anrufe, ohne den Serviceanruf zu tätigen, sind die Beschriftungen im Simulator/iPad beide sichtbar. Aber wenn ich es nach Service-Aufruf innerhalb des Erfolgsblocks anrufe, dann sind Labels nicht sichtbar. Ich habe versucht, den Text programmatisch, aber immer noch das gleiche Problem hinzuzufügen. Ich habe das Debuggen mit Color Blended-Layern versucht, aber das Label ist in der Ansicht überhaupt nicht sichtbar. :(UILabel wird weder im Simulator noch im iPad angezeigt

[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); 
    }]; 

Und diese prepareForSegue Methode -

- (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); 
     } 
    } 

Unten ist mein Bildschirm in Storyboard, aber in Simulator ist das Etikett nicht sichtbar, nur weiter und Schließen-Schaltfläche ist sichtbar

. enter image description here

Bitte helfen Sie !, alle Vorschläge sind herzlich willkommen. Danke!

+0

Wenn Sie einen Haltepunkt in Ihrem Erfolg Block gesetzt ist, wird es sofort getroffen zu werden? Oder erst nach diesen 30-40 Sekunden? –

+0

Es wird sofort getroffen und das Modell wird angezeigt, aber die Beschriftungen sind nicht sichtbar. –

Antwort

1

Es ist möglich, dass die Verzögerung auf eine Aktualisierung der Benutzeroberfläche zurückzuführen ist, die nicht am Hauptthread vorgenommen wurde.

Versuchen Sie, stellen Sie sicher, dass Ihr Code auf dem Haupt-Thread ausgeführt wird dispatch_async wie folgt aus:

[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); 
    }); 
}]; 
+0

Das ist es, du bist super !!!! ,GROSSER DANK. Ich habe meinen ganzen Tag damit verschwendet. Danke soooo viel. –