如何使用上一个和下一个按钮(如一组 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--
    }
}

您可以进一步简化,但这只是为了理解。希望对你有帮助。