有这篇文章:在视图控制器之间传递数据:
Passing Data between View Controllers
我不会想到我在那之后的事情。
在ViewController 1中,我从firebase加载异步数据,我想转到ViewController 2而不等待VC 1返回所有数据。
在VC2上有一个我想要禁用的按钮,直到VC 1完成。
我确实尝试在数据加载完成后在我的单例中将属性设置为true,然后在VC2循环中将此属性设置为true,但是一旦我从VC1中进行了调整,它就会出现,然后它不会设置属性我的单身人士在后台为真。
THX。
答案 0 :(得分:1)
当然有很多解决方案,您可以尝试使用NotificationCenter,执行以下操作:
// in VC2: let's start listening for VC1 callback
NotificationCenter.default.addObserver(self, selector: #selector(self.callbackFromVC1(_:)), name: Notification.Name("VC1HasFinished"), object: nil)
// in VC2: this is the callback will be executed
func callbackFromVC1(_ notification: NSNotification? = nil) {
let userInfoFromVC1:[AnyHashable : Any]? = notification?.userInfo
// do something with userInfoFromVC1
}
....
// in VC1: when your async stuff is finished, push "userInfoFromVC1" into the notification...
NotificationCenter.default.post(name: NSNotification.Name.init(rawValue: "VC1HasFinished"), object: nil, userInfo:userInfoFromVC1)