剛剛發現在生命週期的viewWillDisappear裡有刪除時鐘的方法,卻沒有恢復計時器的方法導致時中暫停,我們來看看 AI如和處裡?

如何在保留 disapper 的情況下 使時間停止不會出現

  // 添加一個標誌來記錄定時器狀態
    private var timerWasRunning = false
    
     override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        
        // 記錄定時器狀態並停止定時器
        timerWasRunning = timer != nil
        timer?.invalidate()
        timer = nil
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        // 如果定時器之前正在運行,則重新啟動
        if timerWasRunning || timer == nil {
            startTimeUpdater()
        }
        
        // 無論如何都更新一次時間,確保顯示最新時間
        updateTimeLabel()
    }
