我需要知道如何在5秒后从第一个ui视图控制器移动到第二个视图控制器。如何定义自动移动的时间,是通过导航控制器以及通过哪种方法?
答案 0 :(得分:4)
使用performSelector
:
- (void)viewDidLoad{
[self performSelector:@selector(loadingNextView)
withObject:nil afterDelay:5.0f];
}
- (void)loadingNextView{
myViewController = [[MyViewController alloc] init];
[self.navigationController pushViewController:myViewController animated:YES];
}
或dispatch_after
上的main_queue
:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5.0f * NSEC_PER_SEC),
dispatch_get_current_queue(), ^{
[self loadingNextView];
});
答案 1 :(得分:3)
您需要定义一个计时器(或使用GCD / performSelector:
)以在延迟后触发方法调用。然后在该方法中,您可以触发视图控制器更改(如何执行此操作取决于当前和下一个视图控制器之间的关系,并且不受执行延迟的代码的影响)。
答案 2 :(得分:0)
在main_queue上使用NSTimer或dispatch_after。