程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-dismissViewControllerAnimated有延遲

ios-dismissViewControllerAnimated有延遲

編輯:編程綜合問答
dismissViewControllerAnimated有延遲

dismissViewControllerAnimated:completion:在應用中運行正常,就是不知道為什麼出現了幾秒鐘的延遲:

[api loginWithUsername:[dict objectForKey:@"username"] andPassword:[dict objectForKey:@"password"] andSuccessBlock:^(id json) {
    NSLog(@"DONE... %@", [json objectForKey:@"status"]);
    NSString *status = [json objectForKey:@"status"];
    if([status isEqualToString:@"ok"]){
        app.user = [json objectForKey:@"data"];
        [self dismissViewControllerAnimated:YES completion:nil];
    }else{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"could not log you in" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];
    }
}];

在控制台可以看見DONE... ok。,意味著回調block執行正常,但是接下來需要三四秒鐘延遲視圖才能最終被dismiss。

怎麼解決這個延遲問題?謝謝

最佳回答:


如果你不能保證UI代碼運行在主線程中,它可能就運行到其他地方去了,這樣的話會出現幾秒鐘的延遲。

添加下面的代碼可以讓dismissal運行在主線程中:

dispatch_async(dispatch_get_main_queue(), ^{
    [self dismissViewControllerAnimated:YES completion:nil]
});
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved