iOS PresentViewController弹出页面延迟大,不弹出

iOS PresentViewController弹出页面延迟大,不弹出

场景

设置页,当点击底部cell,退出登录时,弹出提示框,退出登录
let action = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
let actionViewFirst = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let actionViewSen = UIAlertAction(title: "确认退出", style: .destructive) { (alertAction) in
    self.showSpinner()
    // 请求退出登录
    self.viewModel?.getLogOut()
}
action.addAction(actionViewFirst)
action.addAction(actionViewSen)
self.present(action, animated: true, completion: nil)

结果

延迟比较大,有时弹不出来,随意点击又弹出来

解决方法

将 self.present(action, animated: true, completion: nil)手动放入主线程中处理
DispatchQueue.main.async {
    self.present(action, animated: true, completion: nil)
}

结论

present的方法,内部可能是异步处理

你可能感兴趣的:(iOS PresentViewController弹出页面延迟大,不弹出)