2015-06-21 66 views
0

我想知道如何添加1.0秒的延遲這個賽格瑞我有我的代碼:增加延遲到PresentViewController

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
UIViewController *homeViewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; 
[self presentViewController:homeViewController animated:YES completion:nil]; 

我知道你可以這樣做:

[self performSelector:@selector(showModalTwo:)withObject:someNumber afterDelay:1.0f]; 

我只是不有這個或想做一個功能繼續。任何幫助都很好。謝謝!

+0

你想延遲後執行SEGUE?或者是什麼? –

+0

是的 - 我只想讓延遲時間過後發生。我有一個登錄去,所以我想一旦我給它一個延遲,這將使登錄足夠的時間來獲取我需要用這個segue trasnfer的信息 –

回答

2

不建議用於等待的操作完成(即登錄)增加延遲,而不是你可以使用大中央調度

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){ 
     //Background Thread 
     // do you login logic here 

     dispatch_async(dispatch_get_main_queue(), ^(void){ 
      //Main Thread : UI Updates 
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
      UIViewController *homeViewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; 
      [self presentViewController:homeViewController animated:YES completion:nil]; 

     }); 
    }); 
+0

這很好 - 感謝幫助的人。我很感激! –

+0

這不是實現這種延遲的好方法。如果您只想延遲演示文稿,請使用'dispatch_after'。 – rmaddy

+0

其實他並不需要延遲,他需要在成功登錄後在後臺執行當前的視圖控制器登錄。如果他延遲使用dispatch_after,他將無法確定登錄是否完成 –