Ios 自动启动倒计时Xcode XIB
我想创建一个按钮,将我带到另一个视图控制器并自动开始从3到0的倒计时,但我不知道如何在另一个视图控制器上设置倒计时。以下是我尝试的代码:Ios 自动启动倒计时Xcode XIB,ios,objective-c,Ios,Objective C,我想创建一个按钮,将我带到另一个视图控制器并自动开始从3到0的倒计时,但我不知道如何在另一个视图控制器上设置倒计时。以下是我尝试的代码: @implementation TestViewController -(IBAction)test:(id)sender { CountdownViewController *cdvc = [[CountdownViewController alloc] initWithNibName:@"CountViewController" bundle
@implementation TestViewController
-(IBAction)test:(id)sender {
CountdownViewController *cdvc = [[CountdownViewController alloc]
initWithNibName:@"CountViewController" bundle:nil];
[self.navigationController pushViewController:cdvc animated:YES];
}
@implementation CountdownViewController
int maintInt = 3;
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDown) userInfo:nil repeats:YES];
-(void)countDown {
maintInt -= 1;
count.text = [NSString stringWithFormat:@"%i", maintInt];
if(maintInt==1){
[timer invalidate];
}
}
您必须将倒计时代码放在一个方法中,您应该根据需要在
viewDidLoad
或viewwillbeen
方法中调用该方法
@implementation TestViewController
-(IBAction)test:(id)sender {
CountdownViewController *cdvc = [[CountdownViewController alloc]
initWithNibName:@"CountViewController" bundle:nil];
[self.navigationController pushViewController:cdvc animated:YES];
}
@end
@implementation CountdownViewController
- (void)viewDidLoad {
[super viewDidLoad];
// .. customize your views here ..
// Initialize the timer once your view has been loaded.
//
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countDown:) userInfo:nil repeats:YES];
}
static int maintInt = 3;
- (void)countDown:(NSTimer *)timer {
count.text = [NSString stringWithFormat:@"%i", maintInt];
maintInt -= 1;
if (maintInt == 0 && timer) {
[timer invalidate];
timer = nil;
}
}
@end
我觉得你的代码还可以。您到底遇到了什么问题?在倒计时视图控制器中,实际上它显示的是未声明的标识符self。我想我应该在其他地方添加int和nstimer,但我不知道在哪里。是第
int maintInt=3行的错误代码>?因为如果是的话,你不能像那样在你的方法之外添加代码,你可以把它放在倒计时控制器的init方法中