a。請勿在主線程中使用sleep
,因爲它會阻塞整個GUI。
b。不要在viewDidLoad
做動畫,因爲在這個階段還沒有出現。請使用viewDidAppear
。
c。有不同的方式來「顯示」視圖控制器。這是用於顯示視圖控制器的代碼(即視圖控制器不會被推送到UINavigationController
)。有關呈現視圖控制器的更多信息,請參閱this link。該代碼還解決點上方
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[spinner startAnimating];
double delayInSeconds = 5.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_current_queue(), ^{
[self presentViewController: EntryViewController animated:YES completion:nil];
});
}
使用的dispatch
有點先進,但你真的應該學習它。
只是一個領導。你不應該在生產代碼中使用'sleep'。有很多更好的方法(如下面的Vin)。 「睡眠」可用於測試延遲,但不適用於可用的,可靠的代碼。 – Firo
它只是一個原型。在真正的應用程序將有url請求,所以我將不得不打電話給控制器請求完成後 – Avdept