在我的应用程序中,我想在 ViewDidLoad 中调用异步函数(使用 alamofire),并且用户仍然可以与 View 交互,直到按下按钮,并且如果异步函数不是,我希望应用程序显示进度 hud已完成或如果已完成则转到下一个 View 。我不想在单击按钮时调用异步函数,因为与我在 ViewDidLoad 调用异步函数相比,有时可能需要等待更长的时间 我怎样才能做到这一点?
最佳答案
编辑 - 使用枚举来保存 View Controller 状态
enum State {
case Loading
case Ready
case ShowNext
}
var state: State
func viewDidLoad() {
state = .Loading
makeAsyncCall() { (finished) in
if state == .ShowNext {
showNext()
} else {
state = .Ready
}
}
}
func buttonTapped() {
if state == .Ready {
showNext()
} else {
state = .ShowNext
}
}
关于Swift 3 : get information from server in ViewDidLoad and when click a button, 等待服务器的信息响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42546485/