2014-02-15 2 views
0

Я хочу создать кнопку, которая приведет меня к другому контроллеру представления и автоматически начнет обратный отсчет от 3 до 0, но я не знаю, как установить обратный отсчет на другом контроллере. Вот код, я попробовал:Автоматический запуск обратного отсчета Xcode XIB

@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]; 
    } 
} 
+0

Ваш код кажется ОК для меня. что именно проблема у вас есть? – Merlevede

+0

в контроллере просмотра обратного отсчета, на самом деле он говорит о необъявленном идентификаторе. Я думаю, что я должен добавить int и nstimer в другое место, но я не знаю, где. – Atlas

+0

Является ли ошибка в строке 'int maintInt = 3;'? Потому что, если это так, вы не можете просто добавить код вне ваших методов. –

ответ

0

Вы должны поместить свой код обратного отсчета в методе, который вы должны позвонить в viewDidLoad или viewWillAppear метод относительно ваших потребностей.

@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 
Смежные вопросы