我有3个视图控制器。
视图控制器1有一个按钮,可以看到控制器2(工作正常)。
我有一个计时器,从视图控制器2上的15开始倒计时。
如何才能使定时器达到0时自动切换屏幕(并发送一个整数)到第3个视图控制器?
是否有任何代码可以插入到下面的方法中,以便它会切换到我的第三个视图控制器自动发送整数?
if(secondsCount==0)
{
[countDownTimer invalidate];
countDownTimer = nil;
}
答案 0 :(得分:0)
您应该在第三个视图控制器中创建一个@property timeValue来传递整数。
if(secondsCount==0)
{
[countDownTimer invalidate];
countDownTimer = nil;
ViewController *viewController = [ViewController alloc]init];
viewController.timeValue = //enter integer here
[self presentViewController:viewController animated:YES completion:NULL];
}
答案 1 :(得分:0)
您可以使用-[NSObject performSelector:withObject:afterDelay:]
执行视图控制器堆栈的推送或弹出。如果您需要在调用方法之前取消,请致电+[NSObject cancelPreviousPerformRequestsWithTarget:]
。
像(在你的第二个视图控制器中)
-(void)goToNextViewController
{
UIViewController * nextViewController = [ [ MyViewController alloc ] initWithNibName:... bundle:nil ] ] ;
newViewController.theNumber = /* number */
[ self.navigationController pushViewController:nextViewController animated:YES ] ;
}
-(void)startTimer
{
[ self performSelector:@selector(goToNextViewController) withObject:nil afterDelay:15.0 ] ;
}
-(void)cancelTimer
{
[ NSObject cancelPreviousPerformRequestsWithTarget:self ] ;
}