我有 3 个视图控制器。
视图控制器 1 有一个转到视图控制器 2 的按钮(效果很好)。
我有一个从视图控制器 2 上的 15 开始倒计时的计时器。
我怎样才能使它在计时器达到 0 时自动切换屏幕(并发送一个整数)到第三个视图控制器?
是否有任何代码可以插入到下面的方法中,以便它切换到我的第三个视图控制器并自动发送整数?
if(secondsCount==0)
{
[countDownTimer invalidate];
countDownTimer = nil;
}
我有 3 个视图控制器。
视图控制器 1 有一个转到视图控制器 2 的按钮(效果很好)。
我有一个从视图控制器 2 上的 15 开始倒计时的计时器。
我怎样才能使它在计时器达到 0 时自动切换屏幕(并发送一个整数)到第三个视图控制器?
是否有任何代码可以插入到下面的方法中,以便它切换到我的第三个视图控制器并自动发送整数?
if(secondsCount==0)
{
[countDownTimer invalidate];
countDownTimer = nil;
}
您应该在第三个视图控制器中创建一个 @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];
}
您可以使用-[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 ] ;
}