分割の上部セクションにいくつかの質問が表示され、下部セクションにその他の項目が表示される分割ビューがあります。問題は、ユーザーが質問を選択するたびに新しいビューに「プッシュ」するように記述したことです。これは明らかに理想的とは言えません。なぜなら、ユーザーは、同じ質問を 15 回 (ユーザーが質問を選択した回数に応じて、多かれ少なかれ) コピーして戻ってくる状況に入る可能性があるからです。
簡単な解決策は、ユーザーが質問を選択したときに BOOL を設定することだと思っていましたが、結局のところ、これにより、ユーザーが質問を一度選択できるという新しいバグが発生しますが、戻ってしまうと運が悪くなります. 私はここで立ち往生しています。どんなガイダンスも大歓迎です。
プログラムの流れ:
まず、私がやろうとしていることについて少し理解する必要があります。私は、教師が生徒の歴史調査の学習をサポートできるようにすることに重点を置いた歴史調査アプリを構築しています。そのため、学生が分析できるドキュメントだけでなく、中心的な質問もあります。
アプリの開発方法に基づいて、JSLDetailViewController は主要な質問を表示し、JSL_QuestionInteraction はドキュメントを分析するための質問を表示します。
関連するコード スニペット:
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.section == 0){
if(!didSelectQuestion){
[self performSegueWithIdentifier:@"questionDisplaySegue" sender:indexPath];
didSelectQuestion = TRUE;
} else {
JSLDetailViewController *detailView = [JSLDetailViewController alloc];
detailView.telegram = indexPath.row;
[detailView setDetailItem:indexPath];
}
}else if(indexPath.section == 1){
[self performSegueWithIdentifier:@"telegramQuestionDisplaySegue" sender:indexPath];
JSL_QuestionInteraction *questionView = [[JSL_QuestionInteraction alloc] init];
questionView.managedObjectContext = self.managedObjectContext;
}
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"questionDisplaySegue"]){
JSLDetailViewController *detailView = (JSLDetailViewController *)segue.destinationViewController;
detailView.telegram = index.row;
[detailView setDetailItem:index];
JSLDetailViewController *controller = (JSLDetailViewController *)segue.destinationViewController;
controller.managedObjectContext = self.managedObjectContext;
} else if ([segue.identifier isEqualToString:@"telegramQuestionDisplaySegue"]){
JSL_QuestionInteraction *questionView = [[JSL_QuestionInteraction alloc] init];
questionView.managedObjectContext = self.managedObjectContext;
}
}
この問題を理解するために追加の詳細が必要な場合はお知らせください。