在第二个 SIAlertView 消息和 popViewController 之后屏幕锁定
Screen locked after second SIAlertView message and popViewController
当请求失败时,SIAlertView
显示错误消息然后单击 SIAlertView
的确定按钮,popViewController 工作并且没有问题但是当我第二次尝试并且请求失败时,popViewController 再次工作但是有灰色和锁定的屏幕。屏幕没有任何反应。
我该如何解决这个问题?
顺便说一下,我正在使用 SVProgressHUD
来显示和隐藏加载器。
self.showLoader()
showCardViewModel?.generateCard(success: { [weak self] (cardModel) in
guard let strongSelf = self else { return }
if let cardModel = cardModel {
strongSelf.cardModel = cardModel
}
self?.cardInfoView.isHidden = false
self?.bottomView.isHidden = false
strongSelf.hideLoader()
}, failure: { [weak self] (error) in
guard let strongSelf = self else { return }
strongSelf.hideLoader()
AlertHelper.showAlert(with: AlertType.error,
message: error.localizedDescription,
delegate: self)
})
扩展方法:
extension ShowCardVC: SIAlertViewDelegate {
func alertView(_ alertView: SIAlertView!, clickedButtonAt buttonIndex: Int) {
if let navController = self.navigationController {
navController.popViewController(animated: true)
}
}
}
您应该将此控件添加到 SIAlertView.m
中的 dismissAnimated 方法中
if ([SIAlertView sharedQueue].count >= 1) { [SIAlertView hideBackgroundAnimated:YES]; }
当请求失败时,SIAlertView
显示错误消息然后单击 SIAlertView
的确定按钮,popViewController 工作并且没有问题但是当我第二次尝试并且请求失败时,popViewController 再次工作但是有灰色和锁定的屏幕。屏幕没有任何反应。
我该如何解决这个问题?
顺便说一下,我正在使用 SVProgressHUD
来显示和隐藏加载器。
self.showLoader()
showCardViewModel?.generateCard(success: { [weak self] (cardModel) in
guard let strongSelf = self else { return }
if let cardModel = cardModel {
strongSelf.cardModel = cardModel
}
self?.cardInfoView.isHidden = false
self?.bottomView.isHidden = false
strongSelf.hideLoader()
}, failure: { [weak self] (error) in
guard let strongSelf = self else { return }
strongSelf.hideLoader()
AlertHelper.showAlert(with: AlertType.error,
message: error.localizedDescription,
delegate: self)
})
扩展方法:
extension ShowCardVC: SIAlertViewDelegate {
func alertView(_ alertView: SIAlertView!, clickedButtonAt buttonIndex: Int) {
if let navController = self.navigationController {
navController.popViewController(animated: true)
}
}
}
您应该将此控件添加到 SIAlertView.m
中的 dismissAnimated 方法中
if ([SIAlertView sharedQueue].count >= 1) { [SIAlertView hideBackgroundAnimated:YES]; }