我有一个拆分视图,其中拆分的顶部显示一些问题,底部显示一些其他内容。问题是每次用户选择一个问题时,我都会将其写入“推送”到一个新视图。这显然不太理想,因为用户可以输入相同问题的 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;
}
}
如果您需要任何其他详细信息来理解此问题,请告诉我。