问题描述
我正在研究Swift编码,对我的代码有疑问。
在下面的代码中,我试图首先获取表视图单元格的信息,然后执行segue。我还使用Firestore保存数据。问题是当我使用打印时,我可以先看到segue triggered!!!
,然后看到document saved!!
。由于我想将doc.documentID
的值传递给下一个视图控制器,因此我想在触发执行segue之前保存documentID .....
class HomeViewController: UIViewController {
var gameDocumentID = ""
// more codes here...
override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
if segue.identifier == K.homeToGameScreen {
let gameScreenVC = segue.destination as! GameScreenViewController
gameScreenVC.gameDocumentID = gameDocumentID
}
}
}
extension HomeViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
// serch game db where player1 is ready to play
db.collection(K.FStore.newGameCpllection).whereField(K.FStore.uID,isEqualTo: players[indexPath.row].uID).addSnapshotListener { (querySnapshot,err) in
if let err = err {
print("Error getting game db: \(err)")
} else {
for doc in querySnapshot!.documents {
print("document saved!!")
self.gameDocumentID = doc.documentID
self.db.collection(K.FStore.newGameCpllection).document(self.gameDocumentID).updateData([
K.FStore.player2Field: self.playerInfo[K.FStore.nameField]!
]) { err in
if let err = err {
print("Error updating document: \(err)")
} else {
print("Document successfully updated")
}
print("segue triggered!!!")
self.performSegue(withIdentifier: K.homeToGameScreen,sender: self)
}
}
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)