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