5

我正在开发针对 iOS 5.0 的项目。一切正常,直到我升级我的

设备版本到 iOS 6.1。在这个新版本中,我面临一些闪烁的问题

特定的屏幕。我在做什么如下

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;

这样做之后,我的 iPhone 屏幕上出现了一个非常奇怪的闪烁。闪烁只发生

与 iOS 6.1 相比,版本低于完美。任何帮助是极大的赞赏。

4

2 回答 2

3

我在我的应用程序中遇到了同样的问题。

原因是我使用线程显示警报视图,这就是屏幕闪烁的问题。

我评论了该线程以显示警报视图,之后我的应用程序运行良好。

于 2013-03-04T09:55:00.260 回答
0

我不太了解您的代码。您在主线程上使用 GCD 在延迟后实际在另一个线程上执行选择器。为什么不使用 dispatch_after() 函数?

请记住,由于并发性,在调用选择器之后不会立即调用您的“推送视图”代码。

你不知道你的 OrderList 视图控制器将在什么时候相对于 loadFadingScreenFromController 被推送:

于 2013-02-15T10:15:49.890 回答