如何自动显示警报 iOS

How to automatically show alert iOS

我有一个设备固件更新视图,我可以在其中更新物理设备的固件。 我的目标是 在 DFU 状态为 .completed 时显示警报。这意味着我想将警报弹出窗口绑定到状态,而不是动作。 这是我目前所拥有的:

func showDFUCompletedAlert() {
     let dfuAlert = UIAlertController(title: "The device firmware is updated successfully.", message: "You will be redirected back to the Devices list. To get back to your device just tap on it without refreshing Devices list.", preferredStyle: .alert)
        
     dfuAlert.addAction(UIAlertAction(title: "OK", style: .default, handler: {_ in
            self.dfuUpdate = nil
        }))
        
     self.present(dfuAlert, animated: true)
    }

所以,问题是:如何在设备固件更新完成后立即显示警报,而无需点击按钮等?

谢谢!

更新: 添加 DFU 状态的代码:

func dfuStateDidChange(to state: DFUState) {
     print(state.description())
     case .connecting:
            self.updateView?.selectButton.isHidden = true
     case .starting:
            self.updateView?.selectButton.isHidden = true
     case .aborted:
            self.updateView?.selectButton.isHidden = false
            self.updateView?._fileURL = nil
            self.updateView?.fileNameLabel.text = "Select file"
     case .completed:
     supportDelegate?.showDFUCompletedAlert()
}

更新 [2]: 断点报告:

libsystem_kernel.dylib`mach_msg_trap:
    0x18f63c0ec <+0>: mov    x16, #-0x1f
    0x18f63c0f0 <+4>: svc    #0x80
->  0x18f63c0f4 <+8>: ret    

正如我们在评论中发现的那样,您忘记了为您的控制器设置委托,并且 showDFUCompletedAlert() 方法没有 运行。