我为我的应用程序设置了一个URL方案,该方案将从Web浏览器打开。当应用程序收到它时,它会显示AViewController
。
我还有一个ViewController,BViewController
包含一些数据。理想情况下,如果在激活URL方案时BViewController
处于打开状态,我希望能够将此数据从AViewController
传递到BViewController
。
由于URL方案在AppDelegate
中触发了一项功能,因此我无法将数据从B
传递到A
。
传递数据的最佳方式是什么?
到目前为止,我能想到的唯一解决方案是:
AppDelegate
收到网址方案调用后,通过访问对象属性从B
中提取数据,并在A
中设置这些解决方案我都不满意,当然不是第一个。
有没有更好的解决方法?
提前致谢。
答案 0 :(得分:1)
如果你有......
class Object {
var someData…
}
class BViewController {
var object: Object!
func updateObject() {
object.someData = …
}
}
class AViewController {
var object: Object!
}
然后在AppDelegate中,这样的事情(不是真正的代码!)......
func handleURL() {
if let b = rootViewController as? BViewController {
let a = AViewController()
a.object = b.object
rootViewController = a
}
}