2013-02-07 2 views
5

Ich arbeite an iOS 5.0 gezielte Projekt. Alles funktionierte gut, bis ich meineFlackern Bildschirm Problem in iOS 6.1

Gerät Version iOS 6.1 .In dieser neuen Version aufgerüstet ich in einem

insbesondere screen.What einige flackernde Problem konfrontiert bin ich tue ist wie folgt

dispatch_async(dispatch_get_main_queue(), ^{    

    [APPINSTANCE performSelector:@selector(loadFadingScreenFromController:)  
    withObject:self afterDelay:0.2];//Method in AppDelegate to for db sync 
    [APPINSTANCE setSyncFrom: @"ORDERS"]; 
}); 

//pushing a view 
OrderList *orderListObj = [[OrderList alloc] initWithNibName:@"OrderList" bundle:nil]; 
[self.navigationController pushViewController:orderListObj animated:YES]; 
self.navigationController.navigationBarHidden = NO; 

Nachdem ich das gemacht habe, bekomme ich ein seltsames Flimmern auf meinem iPhone Bildschirm. Das Flimmern tritt nur

mit iOS 6.1, Versionen weniger als das funktioniert perfekt. Jede Hilfe wird sehr geschätzt.

+0

Hier im Dunkeln geschossen: Vielleicht könnte 'performSelectorOnMainThread' anstelle des doppelten' dispatch_' für Sie funktionieren. – Maple

Antwort

0

Ich verstehe nicht sehr Ihren Code. Sie verwenden GCD für den Haupt-Thread, um nach einer Verzögerung einen Selektor für einen anderen Thread auszuführen. Warum verwenden Sie nicht die Funktion dispatch_after()?

Denken Sie daran, dass Ihr Code "pushing a view" NICHT direkt aufgerufen wird, nachdem der Selektor wegen der Parallelität aufgerufen wurde.

Sie wissen nicht, zu welchem ​​Zeitpunkt Ihre Bestelliste View-Controller in Bezug auf geschoben zum loadFadingScreenFromController wird:

3

ich das gleiche Problem in meiner Anwendung konfrontiert.

Grund ist, dass ich eine Alarmansicht mit Thread angezeigt habe und das war das Problem des flackernden Bildschirms.

Ich habe diesen Thread kommentiert, um die Alarmansicht anzuzeigen und danach funktioniert meine Anwendung gut.