From 63f5e7ee764bc855e70320e8190af3e8542330ad Mon Sep 17 00:00:00 2001 From: fish Date: Tue, 21 Jul 2026 21:53:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=A6=E4=B9=A0=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E9=9D=A2=E8=BF=94=E5=9B=9E=E5=90=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=8D=E5=88=B7=E6=96=B0=EF=BC=8C=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=20viewWillAppear=20=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .../Views/HistoryViewController.swift | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/LearnEnglish/LearnEnglish/Views/HistoryViewController.swift b/LearnEnglish/LearnEnglish/Views/HistoryViewController.swift index 0c091ff..c1c2841 100644 --- a/LearnEnglish/LearnEnglish/Views/HistoryViewController.swift +++ b/LearnEnglish/LearnEnglish/Views/HistoryViewController.swift @@ -1,11 +1,10 @@ import UIKit final class HistoryViewController: UITableViewController { - private let sections: [(title: String, items: [LearnedRecord])] + private var sections: [(title: String, items: [LearnedRecord])] = [] private var speechObserver: NSObjectProtocol? init() { - sections = LearnedStore.shared.sectioned super.init(style: .plain) } @@ -27,6 +26,18 @@ final class HistoryViewController: UITableViewController { tableView.backgroundColor = .systemBackground tableView.contentInset.top = 8 + speechObserver = NotificationCenter.default.addObserver( + forName: SpeechService.speakingDidChangeNotification, object: nil, queue: .main + ) { [weak self] _ in + for cell in self?.tableView.visibleCells ?? [] { + (cell as? WordCardCell)?.updateSpeakerState() + } + } + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + sections = LearnedStore.shared.sectioned if sections.isEmpty { let label = UILabel() label.text = "暂无学习记录" @@ -41,15 +52,10 @@ final class HistoryViewController: UITableViewController { label.centerYAnchor.constraint(equalTo: bg.centerYAnchor) ]) tableView.backgroundView = bg + } else { + tableView.backgroundView = nil } - - speechObserver = NotificationCenter.default.addObserver( - forName: SpeechService.speakingDidChangeNotification, object: nil, queue: .main - ) { [weak self] _ in - for cell in self?.tableView.visibleCells ?? [] { - (cell as? WordCardCell)?.updateSpeakerState() - } - } + tableView.reloadData() } override func numberOfSections(in tableView: UITableView) -> Int {