我有一个模拟证明的应用,它有一些模块,其中一个是需要重新加载以显示相同数据的屏幕。示例:我有问题和答案的屏幕。如下所示
问题:bla bla bla?
项目A:X
项目B:Y
项目c:Z
...
屏幕保持不变,需要更改的是问答内容项目A,项目B等。
并且,我正在加载信息"硬编码"。我确定还有其他更好的选择来制作这个^^。我想使用相同的屏幕来加载功能。我怎么能做到这一点?我正在寻找页面控制器,但它不是我想要的,我想使用导航控制器来导航屏幕。我有一个包含所有问题列表的字典和答案:itemA,itemB等,我可以在同一个屏幕中加载这个问题"选择下一个>和<以前?
答案 0 :(得分:0)
一个简单的解决方案是创建一个UIView
添加所有问题并回答其中的相关视图。
UIView
在其中添加所有问答相关视图UIButtons
在下面的方法中self.questionPaperView
是一个动画,它包含所有与问题和答案相关的视图。
注意:为questionPaperView
和内部视图创建全局变量。因此,每次添加/删除questionPaperView
时,您都不需要添加问题/答案子视图。
- (void) removeQuestionPaper {
[UIView animateWithDuration:0.35f animations:^{
[self.questionPaperView removeFromSuperview];
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
// Call data reload method here.
}];
}
- (void) addQuestionPaper {
[self.view addSubview:self.questionPaperView]
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionFade];
[animation setSubtype:kCATransitionFromRight]; // For previous use kCATransitionFromLeft
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[theWindow layer] addAnimation:animation forKey:@"NextView"];
}