我有一個StartViewController
與segue設置爲FinishViewController
。錯誤當嘗試按鈕上顯示ViewController點擊但不是方法消防
StartViewController
有一個按鈕和定時器。如果定時器耗盡,則調用方法finish
。但用戶可以點擊停止按鈕移動到FinishViewController
;
如果用戶點擊按鈕stop
,FinishViewController
被加載。
如果定時器調用finish
方法我得到的錯誤:
Warning: Attempt to present < FinishViewController: 0x7c15a1d0> on < StartViewController: 0x7c252d20> whose view is not in the window hierarchy!
我不明白爲什麼。代碼字面上是相同的。
這是代碼。
- (IBAction)stop:(id)sender {
[timer invalidate];
timer = nil;
[self performSegueWithIdentifier:@"segue_finished" sender:self];
}
- (void) finish {
[timer invalidate];
timer = nil;
[self performSegueWithIdentifier:@"segue_finished" sender:self];
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"prepareForSegue %@", [segue identifier]);
if ([[segue identifier] isEqualToString:@"segue_finished"]) {
NSLog(@"segue to finished. ");
FinishViewController * fvc = (FinishViewController*)segue.destinationViewController;
}
}
任何幫助?
看起來您的'finish'方法在您的StartViewController未顯示時被調用。 – algrid