如何使用上一个和下一个按钮(如一组 10 个问题的幻灯片放映)来导航页面?
How to navigate a page by using prev and next button like slide show for set of 10 ques?
我正在创建一个在线教程应用程序。因为我想通过使用一组 10 questions.Could 进行在线测试,你建议我使用上一个和下一个 button.My 条件设计的方式是,应该有一个 Viewcontroller对于多个视图(10),视图应根据选项卡栏中的上一个和下一个按钮更改。
感谢考虑。
您必须在 1 个数组中回答所有 10 个问题,然后单击上一个下一个按钮更改数组的索引并在视图中显示包含 textview.There 的内容,不需要 10 个 views/Maintain 只有一次查看和更改 contents.Like 下一步按钮增加计数器
i++;
NSString *new = [questionSequenceArray objectAtIndex:i]
questionText.text=new;
这取决于您的要求,如果每个页面包含单个问题和选项,则无需创建 10 个不同的 viecontroller 并且您可以有效地使用视图,
如果所有问题都相同,例如问题和选项,您可以使用单个可重复使用的视图。除非你每个问题都会有不同类型的答案,比如表情符号、照片选择等,
更好地使用可重用的单一视图,使用动画移动并从对象加载适当的数据。完成所有问题后,您可以导航至结论 viewcontroller。我的建议是不要创建 10 个不可用的视图控制器。
您可以尝试以下方法,
- 为您的问题创建一个视图和数组,然后使用一个控制器中的 previous/next 按钮事件对其进行管理。如果你想用动画显示它,需要做一些工作。
- 您甚至可以尝试每次使用更新的数组索引推送同一个控制器。
正如@poojathorat、@Nilesh、@Akshay 所说,您不需要那么多视图控制器,甚至不需要那么多视图。只需一个标签和几个按钮,然后将您的问题放在一个数组中。单击按钮时相应地更改标签文本。
为了让您抢先一步,
// global variables
let qArray = ["Question 1", "Question 2", "Question 3", "Question 4", "Question 5"]
var currIndex = 0
var qLbl: UILabel!
此方法将添加相应的标签和按钮
func addQuestionView() {
let qView = UIView(frame: self.view.bounds)
qView.backgroundColor = UIColor.groupTableViewBackgroundColor()
qLbl = UILabel(frame: CGRect(x: 0, y: 0, width: qView.frame.size.width, height: qView.frame.size.height/2))
qLbl.text = qArray[currIndex]
qLbl.textAlignment = .Center
let prevBtn = UIButton(frame: CGRect(x: 0, y: qView.frame.size.height-50, width: qView.frame.size.width/2, height: 50))
prevBtn.tag = 15
prevBtn.setTitle("Prev", forState: .Normal)
prevBtn.backgroundColor = UIColor.darkGrayColor()
prevBtn.addTarget(self, action: "prevBtnAction", forControlEvents: UIControlEvents.TouchUpInside)
let nextBtn = UIButton(frame: CGRect(x: qView.frame.size.width/2, y: qView.frame.size.height-50, width: qView.frame.size.width/2, height: 50))
nextBtn.tag = 16
nextBtn.setTitle("Next", forState: .Normal)
nextBtn.backgroundColor = UIColor.darkGrayColor()
nextBtn.addTarget(self, action: "nextBtnAction", forControlEvents: UIControlEvents.TouchUpInside)
qView.addSubview(qLbl)
qView.addSubview(prevBtn)
qView.addSubview(nextBtn)
self.view.addSubview(qView)
}
以及按钮操作
func prevBtnAction() {
currIndex--
if currIndex >= 0 {
qLbl.text = qArray[currIndex]
} else {
currIndex++
}
}
func nextBtnAction() {
currIndex++
if currIndex < qArray.count {
qLbl.text = qArray[currIndex]
} else {
currIndex--
}
}
您可以进一步简化,但这只是为了理解。希望对你有帮助。
我正在创建一个在线教程应用程序。因为我想通过使用一组 10 questions.Could 进行在线测试,你建议我使用上一个和下一个 button.My 条件设计的方式是,应该有一个 Viewcontroller对于多个视图(10),视图应根据选项卡栏中的上一个和下一个按钮更改。 感谢考虑。
您必须在 1 个数组中回答所有 10 个问题,然后单击上一个下一个按钮更改数组的索引并在视图中显示包含 textview.There 的内容,不需要 10 个 views/Maintain 只有一次查看和更改 contents.Like 下一步按钮增加计数器
i++;
NSString *new = [questionSequenceArray objectAtIndex:i]
questionText.text=new;
这取决于您的要求,如果每个页面包含单个问题和选项,则无需创建 10 个不同的 viecontroller 并且您可以有效地使用视图,
如果所有问题都相同,例如问题和选项,您可以使用单个可重复使用的视图。除非你每个问题都会有不同类型的答案,比如表情符号、照片选择等, 更好地使用可重用的单一视图,使用动画移动并从对象加载适当的数据。完成所有问题后,您可以导航至结论 viewcontroller。我的建议是不要创建 10 个不可用的视图控制器。
您可以尝试以下方法,
- 为您的问题创建一个视图和数组,然后使用一个控制器中的 previous/next 按钮事件对其进行管理。如果你想用动画显示它,需要做一些工作。
- 您甚至可以尝试每次使用更新的数组索引推送同一个控制器。
正如@poojathorat、@Nilesh、@Akshay 所说,您不需要那么多视图控制器,甚至不需要那么多视图。只需一个标签和几个按钮,然后将您的问题放在一个数组中。单击按钮时相应地更改标签文本。
为了让您抢先一步,
// global variables
let qArray = ["Question 1", "Question 2", "Question 3", "Question 4", "Question 5"]
var currIndex = 0
var qLbl: UILabel!
此方法将添加相应的标签和按钮
func addQuestionView() {
let qView = UIView(frame: self.view.bounds)
qView.backgroundColor = UIColor.groupTableViewBackgroundColor()
qLbl = UILabel(frame: CGRect(x: 0, y: 0, width: qView.frame.size.width, height: qView.frame.size.height/2))
qLbl.text = qArray[currIndex]
qLbl.textAlignment = .Center
let prevBtn = UIButton(frame: CGRect(x: 0, y: qView.frame.size.height-50, width: qView.frame.size.width/2, height: 50))
prevBtn.tag = 15
prevBtn.setTitle("Prev", forState: .Normal)
prevBtn.backgroundColor = UIColor.darkGrayColor()
prevBtn.addTarget(self, action: "prevBtnAction", forControlEvents: UIControlEvents.TouchUpInside)
let nextBtn = UIButton(frame: CGRect(x: qView.frame.size.width/2, y: qView.frame.size.height-50, width: qView.frame.size.width/2, height: 50))
nextBtn.tag = 16
nextBtn.setTitle("Next", forState: .Normal)
nextBtn.backgroundColor = UIColor.darkGrayColor()
nextBtn.addTarget(self, action: "nextBtnAction", forControlEvents: UIControlEvents.TouchUpInside)
qView.addSubview(qLbl)
qView.addSubview(prevBtn)
qView.addSubview(nextBtn)
self.view.addSubview(qView)
}
以及按钮操作
func prevBtnAction() {
currIndex--
if currIndex >= 0 {
qLbl.text = qArray[currIndex]
} else {
currIndex++
}
}
func nextBtnAction() {
currIndex++
if currIndex < qArray.count {
qLbl.text = qArray[currIndex]
} else {
currIndex--
}
}
您可以进一步简化,但这只是为了理解。希望对你有帮助。