From 86b5cabe17dc201db8f23544254655123ba9ed23 Mon Sep 17 00:00:00 2001 From: fish Date: Mon, 20 Jul 2026 21:27:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=A7=BB=E8=87=B3=E5=AF=BC=E8=88=AA=E6=A0=8F?= =?UTF-8?q?=E5=8F=B3=E4=BE=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .../Views/QuizViewController.swift | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/LearnEnglish/LearnEnglish/Views/QuizViewController.swift b/LearnEnglish/LearnEnglish/Views/QuizViewController.swift index fe3d345..153831a 100644 --- a/LearnEnglish/LearnEnglish/Views/QuizViewController.swift +++ b/LearnEnglish/LearnEnglish/Views/QuizViewController.swift @@ -36,6 +36,10 @@ final class QuizViewController: UIViewController { target: nil, action: nil ) + private lazy var caseToggleItem = UIBarButtonItem( + image: UIImage(systemName: "textformat"), + style: .plain, target: self, action: #selector(toggleCase) + ) private var current: QuizQuestion? { questions.indices.contains(currentIndex) ? questions[currentIndex] : nil @@ -68,10 +72,6 @@ final class QuizViewController: UIViewController { view.backgroundColor = .systemBackground title = config.mode.rawValue navigationItem.largeTitleDisplayMode = .never - navigationItem.leftBarButtonItem = UIBarButtonItem( - image: UIImage(systemName: "textformat"), - style: .plain, target: self, action: #selector(toggleCase)) - updateCaseButton() buildLayout() showQuestion() } @@ -200,7 +200,14 @@ final class QuizViewController: UIViewController { resultLabel.isHidden = true resultPhoneticLabel.isHidden = true - navigationItem.rightBarButtonItem = config.mode == .zhToEn ? nil : navSpeakerItem + if config.mode == .spelling { + updateCaseButton() + navigationItem.rightBarButtonItems = [navSpeakerItem, caseToggleItem] + } else if config.mode == .zhToEn { + navigationItem.rightBarButtonItems = nil + } else { + navigationItem.rightBarButtonItem = navSpeakerItem + } let isSpelling = config.mode == .spelling let isDictation = config.mode == .dictation @@ -411,7 +418,7 @@ final class QuizViewController: UIViewController { } private func updateCaseButton() { - navigationItem.leftBarButtonItem?.tintColor = isUppercase ? Theme.Color.accent : .tertiaryLabel + caseToggleItem.tintColor = isUppercase ? Theme.Color.accent : .tertiaryLabel } @objc private func speakCurrentWord() {