Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用';如果';或';其他';导航到新视图的步骤_Ios_Swift_Swiftui - Fatal编程技术网

Ios 使用';如果';或';其他';导航到新视图的步骤

Ios 使用';如果';或';其他';导航到新视图的步骤,ios,swift,swiftui,Ios,Swift,Swiftui,我正在制作一个测验应用程序,并试图找到一种结束测验的方法,这样它就可以导航到分数页。我尝试过使用NavigationLink,但它不起作用-有人能告诉我哪里出了问题吗 谢谢 完整代码 @State private var round: Round? @State private var question: Question? @State private var answer: Answer? @State private var roundIndex: Int = 0 @State priva

我正在制作一个测验应用程序,并试图找到一种结束测验的方法,这样它就可以导航到分数页。我尝试过使用NavigationLink,但它不起作用-有人能告诉我哪里出了问题吗

谢谢

完整代码

@State private var round: Round?
@State private var question: Question?
@State private var answer: Answer?
@State private var roundIndex: Int = 0
@State private var questionIndex: Int = 0
@State private var correctAnswers: Int = 0
@State private var showingScore = false
@State private var scoreTitle = ""
@State private var score = 0
@State private var showingAlert = false
@State private var percentageScore = 0


    
var answers: [Answer] {
    return question?.answers ?? []
}
   

    
private func loadQuiz() {
    round = quiz.rounds.first
    question = round?.questions.first
    questionIndex = 0
    roundIndex = 0
    score = 0
    scoreTitle = ""
    showingScore = false
    showingAlert = false

}

private func onAnswerTap(_ answer: Answer) {
    if answer.correct {
        scoreTitle = "Correct"
        score += 1
    } else {
        scoreTitle = "Incorrect"
    }
    showingScore = true
}

private func nextQuestion() {
    showingScore = false
    questionIndex += 1
    
    guard let round = round else { fatalError() }
    
这里是我放置If或Else部分的地方

    if questionIndex < round.questions.count {
        question = round.questions[questionIndex]
    } else {
        NavigationLink(destination: ProgressStats()) {
            Text("Quiz Completed, Well Done!")
          }
        }
}

}欢迎来到SO!如果没有看到更多的代码,我猜您没有将此代码包装到NavigationView中:

NavigationView {
...
 if questionIndex < round.questions.count {
        question = round.questions[questionIndex]
    } else {
        NavigationLink(destination: Progress()) {
            Text("Quiz Completed, Well Done!")
          }
        }
...
}

“它不工作”-这到底意味着什么?NavigationLink不会自动切换到新视图。用户可以单击它以进入新视图。用if-else显示不同的内容是可行的,但是试着实现更多的代码,这样我们就可以复制它。你能给出这个条件所在的更多上下文吗?谢谢你-我已经把完整的代码放上去了
NavigationView {
...
 if questionIndex < round.questions.count {
        question = round.questions[questionIndex]
    } else {
        NavigationLink(destination: Progress()) {
            Text("Quiz Completed, Well Done!")
          }
        }
...
}
var body: some View {
  
NavigationView {