如何将我从api接收到的json响应传递给另一个分镜脚本中的另一个viewcontroller?
我尝试使用segues,但似乎不起作用
let propass = UIStoryboard(name: "ProfileStoryboard", bundle: Bundle.main).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
propass.proDict2 = parseJSON2
答案 0 :(得分:0)
尝试添加:
self.present(propass, animated: true, completion: nil)
之后:
propass.proDict2 = parseJSON2
答案 1 :(得分:0)
如果您通过情节提要板设置了segue,那么当您尝试上述代码时,就无法通过segue起作用。问题在于,当您设置情节提要剧集时,应用程序会处理创建新的VC并从原始VC展示/显示它的情况。
您在代码中所做的是,您正在实例化同一视图控制器的新版本,而不是所显示/呈现的版本。
您有2种方法来实现此目的,首先是通过重写ViewController中的prepareForSegue来显示/展示您的Propass View Controller:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YOUR SEGUE IDENTIFIER FROM THE STORYBOARD" {
let propassVC = segue.destination as! ProfileViewController
propassVC.proDict = parseJSON2
}
}
另一种实现此方法的方法是,删除您在情节提要中设置的segue。然后按照初始化Propass VC并将数据传递给它的方式进行操作。
let propassStoryboard = UIStoryboard(name: "Main", bundle: nil)
let propassVC = propassStoryboard.instantiateViewController(withIdentifier: "PROPASS IDENTIFIER SET IN STORYBOARD") as ProfileViewController
propassVC.jsonDict = JSONParse2
show(propassVC, sender: nil)