StartViewController
のセグが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;
}
}
助けが必要ですか?
StartViewControllerが表示されていないときに、あなたの 'finish'メソッドが呼び出されたようです。 – algrid