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() {